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

Shishir Srivast
Mega Sage

Hi Josh,



The getXMLWait() function does not need a separate callback function. Please find the more details below. Thank you!



http://wiki.servicenow.com/index.php?title=GlideAjax#gsc.tab=0


Vinay Tulaband1
Kilo Expert

getXMLWait itself is not working on the portal.how is this issue solved without using getXMLWait()