Javascript multiple email regexp validation in ruby dynamic data
<span id="error_message_<%= item.id %>" class="p-3 mb-2 text-danger text-center">Multiple emails must be separated by comma.</span>
<%= text_field_tag :email, nil, style: 'width: 60%;', required: true, id: "emails_#{item.id}", placeholder: "Multiple emails must be separated by comma." %>
$(document).ready(function() {
document.getElementById("cc_submit_<%= item.id %>").disabled = true;
document.getElementById('error_message_<%= item.id %>').style.display='none';
});
$('#emails_<%= item.id %>').keyup( function() {
var emails = $('#emails_<%= item.id %>').val();
var emails = emails.split(",");
var valid = true;
var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var invalidEmails = [];
for (var i = 0; i < emails.length; i++) {
emails[i] = emails[i].trim();
if( emails[i] == "" || ! regex.test(emails[i])){
invalidEmails.push(emails[i]);
}
}
if(invalidEmails != 0) {
document.getElementById("cc_submit_<%= item.id %>").disabled = true;
document.getElementById("error_message_<%= item.id %>").style.display='block';
}
else{
document.getElementById("cc_submit_<%= item.id %>").disabled = false;
document.getElementById('error_message_<%= item.id %>').style.display='none';
}
})