Onclick UI action should be grayed out

coolsaurabh
Tera Contributor

I have created a UI action Locked. I want when user click on it , it should   be grayed out . Screenshot attached (UI Action encircled in red) :-

Qt.jpg

Thanks,

Saurabh

1 ACCEPTED SOLUTION

ark6
Mega Guru

Hi Sourav,



Here you go. The below procedure works for me



1. Create a custom checkbox on your form(for me its flag)


find_real_file.png



2. Write the below code on the locked out UI action



function hello()


{



  document.getElementById("159c99bb4f303200b5d50ab18110c747").disabled = true;


  var ga = new GlideAjax("hello");


    ga.addParam("sysparm_name","hello2");


    ga.addParam("sysparm_parent",g_form.getValue('number'));


    ga.getXML(test2);


function test2(response){


var answer = response.responseXML.documentElement.getAttribute("answer");


}


  }


find_real_file.png



3. And the script include



var hello = Class.create();


hello.prototype = Object.extendsObject(AbstractAjaxProcessor, {


hello2: function() {


var groupID=this.getParameter('sysparm_parent');


  gs.log('testing1'+groupID);


  var gr=new GlideRecord("incident");


gr.addQuery('number',groupID);


gr.query();


if(gr.next())


{


gr.u_flag='true';


gr.update();


}




},


      type: 'hello'


});



find_real_file.png



4. To control the reloading issue, write the below onload client script



function onLoad() {


    //Type appropriate comment here, and begin script below


    if(g_form.getValue('u_flag')=='true')


  {


  document.getElementById("159c99bb4f303200b5d50ab18110c747").disabled = true;


  }


}




Please note: I haven't used the try/catch statements, but you need to use it in your code while playing with DOM.


Also you need to hide the flag button from the form through UI policy or ACL(dont remove it from form layout or else it will not work).



Please hit LIKE or mark HELPFUL if found appropriate


View solution in original post

27 REPLIES 27

ark6
Mega Guru

Hi Sourav,



Here you go. The below procedure works for me



1. Create a custom checkbox on your form(for me its flag)


find_real_file.png



2. Write the below code on the locked out UI action



function hello()


{



  document.getElementById("159c99bb4f303200b5d50ab18110c747").disabled = true;


  var ga = new GlideAjax("hello");


    ga.addParam("sysparm_name","hello2");


    ga.addParam("sysparm_parent",g_form.getValue('number'));


    ga.getXML(test2);


function test2(response){


var answer = response.responseXML.documentElement.getAttribute("answer");


}


  }


find_real_file.png



3. And the script include



var hello = Class.create();


hello.prototype = Object.extendsObject(AbstractAjaxProcessor, {


hello2: function() {


var groupID=this.getParameter('sysparm_parent');


  gs.log('testing1'+groupID);


  var gr=new GlideRecord("incident");


gr.addQuery('number',groupID);


gr.query();


if(gr.next())


{


gr.u_flag='true';


gr.update();


}




},


      type: 'hello'


});



find_real_file.png



4. To control the reloading issue, write the below onload client script



function onLoad() {


    //Type appropriate comment here, and begin script below


    if(g_form.getValue('u_flag')=='true')


  {


  document.getElementById("159c99bb4f303200b5d50ab18110c747").disabled = true;


  }


}




Please note: I haven't used the try/catch statements, but you need to use it in your code while playing with DOM.


Also you need to hide the flag button from the form through UI policy or ACL(dont remove it from form layout or else it will not work).



Please hit LIKE or mark HELPFUL if found appropriate


Richa29
Kilo Contributor

When I click on cancel change, "Save" and "Submit change" buttons should be grayed out. Can anyone please help me with the code of buttons which needs to be grayed out, once it is click on cancel change.

There is no functionality to do this.

Please raise a question and we can help you reach a similar outcome by other means.


ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022