confirm on an on submit script

Brian Lancaster
Tera Sage

I'm trying to force a confirm with an on submit script.   It is displaying that popup but no matter if the user hits ok or cancel it will still proceed to checkout or add the item to the cart even thought I am returning false.   Any ideas on why I am seeing this behavior?

function onSubmit() {

  //Type appropriate comment here, and begin script below

  var req = g_form.getValue('requesttype');

  if (req == 'New / Modify Account'){

  var role = g_form.getValue ('role');

  if (role == 'Due Diligence Data Management (no course required)' ||

  role == 'Due Diligence TMF (no course required)'){

  return true;

  }

  else {

  var training = new GlideRecord ('u_trackwise_roles');

  training.addQuery('u_role', role);

  training.query(function(training){

  if (training.next()){

  var conf = confirm('Have you completed course(s) ' + training.u_ilearn_course + ' in iLearn.   Click Ok to sbumit your request or cancel if you have not completed the training.');

  }

  if(conf) {

  alert (conf);

  return true;

  }

  else {

  alert (conf);

  return false;

  }

  });

  }

  }

  else {

  return true;

  }

}

1 ACCEPTED SOLUTION

HV1
Mega Guru

Try this:




function onSubmit() {


        //Type appropriate comment here, and begin script below


            var req = g_form.getValue('requesttype');


            if (req == 'New / Modify Account') {


                      var role = g_form.getValue ('role');


                      if (role == 'Due Diligence Data Management (no course required)' ||   role == 'Due Diligence TMF (no course required)'){


                                return true;


                      } else {


                                var training = new GlideRecord ('u_trackwise_roles');


                                training.addQuery('u_role', role);


                                training.query();


                                if (training.next()) {


                                          return confirm('Have you completed course(s) ' + training.u_ilearn_course + ' in iLearn.   Click Ok to submit your request or cancel if you have not completed the training.');


                                }


                  }


        }


        else {


                return true;


        }


}



- Hardik Vora


View solution in original post

11 REPLIES 11

Brian Lancaster
Tera Sage

Note sure if this helps but I do get the following warning when I click check syntax.



WARNING at line 17: 'conf' used out of scope.


ghsrikanth
Tera Guru

Define conf variable inside the function and above the if clause -


  training.query(function(training){


  var conf = '';


  if (training.next()){  


  conf = confirm('Have you completed course(s) ' + training.u_ilearn_course + ' in iLearn.   Click Ok to sbumit your request or cancel if you have not completed the training.');  


  }  


  if(conf) {  


  alert (conf);  


  return true;  


  } else {  


  alert (conf);  


  return false;  


  }




Hope it helps


Same issue it is still adding the item to the cart or going to checkout.


HV1
Mega Guru

Try this:




function onSubmit() {


        //Type appropriate comment here, and begin script below


            var req = g_form.getValue('requesttype');


            if (req == 'New / Modify Account') {


                      var role = g_form.getValue ('role');


                      if (role == 'Due Diligence Data Management (no course required)' ||   role == 'Due Diligence TMF (no course required)'){


                                return true;


                      } else {


                                var training = new GlideRecord ('u_trackwise_roles');


                                training.addQuery('u_role', role);


                                training.query();


                                if (training.next()) {


                                          return confirm('Have you completed course(s) ' + training.u_ilearn_course + ' in iLearn.   Click Ok to submit your request or cancel if you have not completed the training.');


                                }


                  }


        }


        else {


                return true;


        }


}



- Hardik Vora


Hello Hardik,


Unless I'm missing something this was already tried from akb's response.