Validate multiple email addresses separated by a comma

lbless1
Giga Expert

This code is not validating any email addresses after the first one. Any help would be appreciated!

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

  var err_field = control.id;

  var err_flag = 'false';

  var err_message = 'Invalid Email Address format. Format should be like: abc@domain.com';

   

  var group_members = g_form.getValue('str1');

  var member_split = group_members.split(',');

  for (var n = 0; n < member_split.length; n++) {

  var member_info = member_split[n];

  regex = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/ig;

  err_flag = regex.test(g_form.getValue(err_field));

  g_form.hideErrorBox(err_field);

  if (!err_flag) {

    g_form.hideFieldMsg('req_inbox');

  g_form.showFieldMsg(err_field, err_message, 'error');

  }

  else {

  g_form.hideErrorBox(err_field);

  }

}

}

1 ACCEPTED SOLUTION

Abhinay Erra
Giga Sage

Here you go. Use this script



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


  var err_field = control.id;


  var err_flag = true;


  var err_message = 'Invalid Email Address format. Format should be like: abc@domain.com';


  g_form.hideErrorBox(err_field);


  var group_members = g_form.getValue('str1');


  var member_split = group_members.split(',');


  for (var n = 0; n < member_split.length; n++) {


  var member_info = member_split[n].trim();


  regex = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/ig;


  err_flag = regex.test(member_info);


  if (!err_flag) {


  break;


  }


  }


  if(!err_flag){


  g_form.hideFieldMsg('req_inbox');


  g_form.showFieldMsg(err_field, err_message, 'error');


  }


  else{


  g_form.hideErrorBox(err_field);


  }


}


View solution in original post

14 REPLIES 14

TJ on Community
Giga Expert

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




  var err_field = control.id;


  var err_flag = false;   // Made binary instead of string by removing quotes


  var err_message = 'Invalid Email Address format. Format should be like: abc@domain.com';




  var group_members = g_form.getValue('str1');


  var member_split = group_members.split(',');




  for (var n = 0; n < member_split.length; n++) {


      var member_info = member_split[n];




      regex = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/ig;


      err_flag = regex.test(g_form.getValue(err_field));


      g_form.hideErrorBox(err_field);




      if (!err_flag) {


          g_form.hideFieldMsg('req_inbox');


          g_form.showFieldMsg(err_field, err_message, 'error');


          err_flag = false; // Reset the flag once you perform the action you would like.


      }else {


          g_form.hideErrorBox(err_field);




      }




  }


}


Still does not validate after the first in the series.


find_real_file.png


Still does not validate after the first in the series. Plus, leaves the error message even is the first in series is correct.


What if there is a space after the comma?     The system may see that as one continual string