Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Client Script alert

nicolaosoteo
Kilo Explorer

Hi All,

Hoping for some help with my alert message client script.

I have a requirement to have my customer fill out a field with a minimum and maximum of 6 numbers and no characters.

I have created an onchange client script which appears to work well, however I get a looping alert which needs to be closed for the customer to progress. Can soomebody please tell me what I have done incorrectly in my code?

function onChange(control, oldValue, newValue, isLoading) {  

 

  if (isLoading ) {  

  return;  

  }  

        var myFieldValue = g_form.getValue('u_mcn_io_number');  

      if (myFieldValue.toString().length < 6) { // or whatever number you want  

              g_form.setValue('u_mcn_io_number','');  

              alert('Please enter 6 or more characters.');  

      }  

 

  if(oldValue != newValue){  

 

  var VALIDCHARS = "1234567890";  

  var number   = newValue.trim();  

  var regEx = "^[0-9]*$";  

  var rtn = number.match(regEx);  

  g_form.hideFieldMsg('u_mcn_io_number', true);  

  if (rtn == null) {  

  g_form.showFieldMsg('u_mcn_io_number', number + " is an invalid   number, please re-enter using only characters from " + VALIDCHARS ,'error');  

  return;  

  }  

  }  

 

}

1 ACCEPTED SOLUTION

Abhinay Erra
Giga Sage

Here you go, replace first if with this



if (isLoading || newValue === '') {


          return;


  }



Your script will be


function onChange(control, oldValue, newValue, isLoading) {    


   


if (isLoading || newValue === '') {


          return;


  }


 




      var myFieldValue = g_form.getValue('u_mcn_io_number');    


      if (myFieldValue.toString().length < 6) { // or whatever number you want    


              g_form.setValue('u_mcn_io_number','');    


              alert('Please enter 6 or more characters.');    


      }    


   


  if(oldValue != newValue){    


   


  var VALIDCHARS = "1234567890";    


  var number   = newValue.trim();    


  var regEx = "^[0-9]*$";    


  var rtn = number.match(regEx);    


  g_form.hideFieldMsg('u_mcn_io_number', true);    


  if (rtn == null) {    


  g_form.showFieldMsg('u_mcn_io_number', number + " is an invalid   number, please re-enter using only characters from " + VALIDCHARS ,'error');    


  return;    


  }    


  }    


   


}


View solution in original post

4 REPLIES 4

Abhinay Erra
Giga Sage

Here you go, replace first if with this



if (isLoading || newValue === '') {


          return;


  }



Your script will be


function onChange(control, oldValue, newValue, isLoading) {    


   


if (isLoading || newValue === '') {


          return;


  }


 




      var myFieldValue = g_form.getValue('u_mcn_io_number');    


      if (myFieldValue.toString().length < 6) { // or whatever number you want    


              g_form.setValue('u_mcn_io_number','');    


              alert('Please enter 6 or more characters.');    


      }    


   


  if(oldValue != newValue){    


   


  var VALIDCHARS = "1234567890";    


  var number   = newValue.trim();    


  var regEx = "^[0-9]*$";    


  var rtn = number.match(regEx);    


  g_form.hideFieldMsg('u_mcn_io_number', true);    


  if (rtn == null) {    


  g_form.showFieldMsg('u_mcn_io_number', number + " is an invalid   number, please re-enter using only characters from " + VALIDCHARS ,'error');    


  return;    


  }    


  }    


   


}


Perfect, thanks for that!


nicolaosoteo
Kilo Explorer

Perfect, that worked, thanks!


Abhinay Erra
Giga Sage

Glad you got your question answered.