Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

getxmlwait() not working onSubmit

Community Alums
Not applicable

I am trying to use getXMLWait() to stop a catalog item form submission, but this method is not working.   The form still submits.  

function onSubmit() {

     

     

      var emailGA = new GlideAjax('EmailAutoGeneration');

      emailGA.addParam('sysparm_name', 'generateEmailAddress');

      emailGA.addParam('sysparm_preferred_first_name', g_form.getValue('preferred_first_name'));

      emailGA.addParam('sysparm_preferred_last_name', g_form.getValue('preferred_last_name'));

      emailGA.addParam('sysparm_middle_name',   g_form.getValue('middle_name'));

     

      emailGA.getXMLWait(respParse);

     

      function respParse(response){

              var myObj = response.responseXML.documentElement.getAttribute('answer');

              var emailResp = JSON.parse(myObj);

             

              g_form.hideFieldMsg('email_address',true);

              g_form.setValue('email_address', emailResp.email.toString(), emailResp.email.toString());

             

              if(!emailResp.emailOk){

                      g_form.showFieldMsg('email_address',emailResp.msg.toString(),'error',true);

                      //disable the "Order Now" and "Add to Cart" buttons

                      document.getElementById("order_now").disabled=true;

                      document.getElementById("add_to_cart_button").disabled=true;

                      alert('test');

                      return false;

              }

      }              

}

1 ACCEPTED SOLUTION

oliver_castaway
Mega Contributor

I would try:



  1. function onSubmit() {  
  2.          
  3.          
  4.       var emailGA = new GlideAjax('EmailAutoGeneration');  
  5.       emailGA.addParam('sysparm_name', 'generateEmailAddress');  
  6.       emailGA.addParam('sysparm_preferred_first_name', g_form.getValue('preferred_first_name'));  
  7.       emailGA.addParam('sysparm_preferred_last_name', g_form.getValue('preferred_last_name'));  
  8.       emailGA.addParam('sysparm_middle_name',   g_form.getValue('middle_name'));  
  9.  
  10.          
  11. emailGA.getXMLWait();
  12. var myObj =   emailGA.getAnswer()
  13.        
  14.               var emailResp = JSON.parse(myObj);  
  15.                  
  16.               g_form.hideFieldMsg('email_address',true);  
  17.               g_form.setValue('email_address', emailResp.email.toString(), emailResp.email.toString());  
  18.                  
  19.               if(!emailResp.emailOk){  
  20.                       g_form.showFieldMsg('email_address',emailResp.msg.toString(),'error',true);  
  21.                       //disable the "Order Now" and "Add to Cart" buttons  
  22.                       document.getElementById("order_now").disabled=true;  
  23.                       document.getElementById("add_to_cart_button").disabled=true;  
  24.                       alert('test');  
  25.                       return false;  
  26.               }  
  27. }  


View solution in original post

6 REPLIES 6

SanjivMeher
Mega Patron
Mega Patron

Hi Josh,



You should use emailGA.getAnswer(), to get a response instead of calling a call back function.


Below is an example.


var ga = new GlideAjax('HelloWorld');


ga.addParam('sysparm_name','helloWorld');


ga.addParam('sysparm_user_name',"Bob");


ga.getXMLWait();


alert(ga.getAnswer());



Your coe should be


emailGA.getXMLWait();


var myObj = emailGA.getAnswer();



Please mark this response as correct or helpful if it assisted you with your question.

Hi sanjiv,

 

ga.getXMLWait(); is not working for my some of requirement.

Error: getXMLWait() No longer supported

could you please tell me what would be another way to resolve it?

 

Thanks 

Can you provide me the complete requirement?

I know getXMLWait wont work for scoped app. You will have to find another way.


Please mark this response as correct or helpful if it assisted you with your question.

oliver_castaway
Mega Contributor

I would try:



  1. function onSubmit() {  
  2.          
  3.          
  4.       var emailGA = new GlideAjax('EmailAutoGeneration');  
  5.       emailGA.addParam('sysparm_name', 'generateEmailAddress');  
  6.       emailGA.addParam('sysparm_preferred_first_name', g_form.getValue('preferred_first_name'));  
  7.       emailGA.addParam('sysparm_preferred_last_name', g_form.getValue('preferred_last_name'));  
  8.       emailGA.addParam('sysparm_middle_name',   g_form.getValue('middle_name'));  
  9.  
  10.          
  11. emailGA.getXMLWait();
  12. var myObj =   emailGA.getAnswer()
  13.        
  14.               var emailResp = JSON.parse(myObj);  
  15.                  
  16.               g_form.hideFieldMsg('email_address',true);  
  17.               g_form.setValue('email_address', emailResp.email.toString(), emailResp.email.toString());  
  18.                  
  19.               if(!emailResp.emailOk){  
  20.                       g_form.showFieldMsg('email_address',emailResp.msg.toString(),'error',true);  
  21.                       //disable the "Order Now" and "Add to Cart" buttons  
  22.                       document.getElementById("order_now").disabled=true;  
  23.                       document.getElementById("add_to_cart_button").disabled=true;  
  24.                       alert('test');  
  25.                       return false;  
  26.               }  
  27. }