getxmlwait() not working onSubmit

brostoff17
Tera Contributor

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
Kilo Patron
Kilo 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. }