CA Service Management

 View Only
  • 1.  Hide fields the fields based on dropdown selection

    Posted May 02, 2019 08:44 AM

    Hi Team

     

    We have a customized form for one of the team of Request Management module. 

     

    In the following snapshot,there is first highlighted field 'Create Org VDC Network' which contain Yes and No. Bydefault it is  YES. 

    The other below 3 highlighted fields are mandatory based on YES. But if the user change it to NO, Those  3 highlighted fields(name,ip range and subnet) should become disappear.

     

    Please can anyone help on this what function need to apply on 'create org vdc network' dropdown field to fulfill our need???

     

    <PDM_MACRO name=dtlDropdown hdr="Create Org VDC Network" attr="zVDCNetwork" default="Yes">

     

     

     



  • 2.  Re: Hide fields the fields based on dropdown selection

    Posted May 06, 2019 03:05 AM

    hi,

     

    you can add a onchange event to your "decisional" field and call some stuff from following function set. e. g. var myFirstField = zmanFields("remove", 1, 2) to remove and save a field the specific field for later use or zmanFields("insert", 1, 2) to re-add it, or zmanFields("non-edit", 1, 2) to make it non-accessible and so on.

     

    greetings, pacy

     

    //////////////////////////////////////////////////////////////////////////

    /////                                                  

    ///// zmanFields(keyword, row1, field1, row2, field2)

    /////

    /////       keyword = "toggle"

    /////              row1   = row number of header of field 1

    /////              field1 = col number of header of field 1

    /////              row2   = row number of header of field 2

    /////              field2 = col number of header of field 2

    /////      

    /////       keyword = "remove"

    /////              row1   = row number of header of field to remove

    /////              field1 = col number of header of field to remove

    /////              returns an array of 2 DOM nodes:

    /////                array[0] = DOM node of removed header

    /////                array[1] = DOM node of removed field

    /////      

    /////       keyword = "insert"

    /////              row1   = row number of header of field to insert

    /////              field1 = col number of header of field to insert

    /////              row2   = DOM node of header to insert

    /////              field2 = DOM node of field to insert

    /////      

    /////       keyword = "non-edit"

    /////              row1   = row number of header of field to disable

    /////              field1 = col number of header of field to disable

    /////      

    /////       keyword = "edit"

    /////              row1   = row number of header of field to enable

    /////              field1 = col number of header of field to enable

    /////

    ///// mho * mbs * 30.04.2010

    //////////////////////////////////////////////////////////////////////////

    function zmanFields(keyword, row1, field1, row2, field2) {

      

       saveHdr1  = new Object();

       saveHdr2  = new Object();

       saveCode1 = new Object();

       saveCode1 = new Object();

       tblRows   = new Array();

         

       //                 table.        body.       tr.

       tblRowCount = _dtl.currTblObj.children[0].children.length;

      

       for (var i = 1; i <= tblRowCount; i++) {

          tblRows[i] = _dtl.currTblObj.children[0].children[i - 1];

       }

       // toggle two fields position

       if( keyword == "toggle") {

          saveHdr1 = tblRows[row1].children[field1 - 1].cloneNode(true);

          saveCode1 = tblRows[row1 + 1].children[field1 - 1].cloneNode(true);

          saveHdr2 = tblRows[row2].children[field2 - 1].cloneNode(true);

          saveCode2 = tblRows[row2 + 1].children[field2 - 1].cloneNode(true);

         

          tblRows[row1].replaceChild(saveHdr1, tblRows[row1].children[field2 - 1]);

          tblRows[row1 + 1].replaceChild(saveCode1, tblRows[row1 + 1].children[field2 - 1]);

          tblRows[row2].replaceChild(saveHdr2, tblRows[row2].children[field1 - 1]);

          tblRows[row2 + 1].replaceChild(saveCode2, tblRows[row2 + 1].children[field1 - 1]);

       }

       // remove a field

       if( keyword == "remove") {

         

          saveHdr1 = tblRows[row1].children[field1 - 1].cloneNode(true);

          saveCode1 = tblRows[row1 + 1].children[field1 - 1].cloneNode(true);

      

          tblRows[row1].removeChild(tblRows[row1].children[field1 - 1]);

          tblRows[row1 + 1].removeChild(tblRows[row1 + 1].children[field1 - 1]);

         

          returnObject = new Array(saveHdr1, saveCode1);

          return returnObject;

       }

       // insert a field

       if( keyword == "insert") {

         

          tblRows[row1].insertBefore(row2, tblRows[row1].children[field1 - 1]);

          tblRows[row1 + 1].insertBefore(field2, tblRows[row1 + 1].children[field1 - 1]);

       }

       // editmodes of a field

       if( keyword == "non-edit" || keyword == "edit") {

         

          if(_dtl.edit) {

            

             var mode = (keyword == "non-edit") ? true : false;

            

             if (navigator.appName == "Netscape")

                tblRows[row1 + 1].children[field1 - 1].childNodes[1].disabled = mode; 

             else

                tblRows[row1 + 1].children[field1 - 1].childNodes[1].previousSibling.disabled = mode;

          }     

       }

    }

    var zsave_days = new Array();

    var zsave_date = new Array();

    function zremove_fields() {

      

       zsave_days = zmanFields("remove", 1, 3);

       zsave_date = zmanFields("remove", 1, 2);

      

       if(_dtl.edit) {

          if ( document.main_form.elements["SET.interval"].value == 60 ) {

             zmanFields('insert', 1, 2, zsave_date[0], zsave_date[1]);

          }

          else {

             zmanFields('insert', 1, 2, zsave_days[0], zsave_days[1]);

          }     

       }

       else {

          if ( "$args.interval.sym" == "ONCE" ) {

             zmanFields('insert', 1, 2, zsave_date[0], zsave_date[1]);

          }

          else {

             zmanFields('insert', 1, 2, zsave_days[0], zsave_days[1]);

          }     

       }

    }

    function ztoggle_fields() {

      

       if ( document.main_form.elements["SET.interval"].value == 60 ) {

          zsave_days = zmanFields("remove", 1, 2);

          zmanFields('insert', 1, 2, zsave_date[0], zsave_date[1]);

       }

       else {

          zsave_date = zmanFields("remove", 1, 2);

          zmanFields('insert', 1, 2, zsave_days[0], zsave_days[1]);

       }

    }