Я работаю над этим в течение нескольких часов и не могу заставить его работать. Мне нужно больше одного адреса электронной почты в разделе наших клиентов в том же поле ввода.2+ (несколько) электронных писем в jQuery Подтвержденный ввод текста
Сейчас у меня есть (который прекрасно работает для одного адреса электронной почты):
<script language="JavaScript">
$(document).ready(function(){
$("form#editclient").validate({
rules: {
Contact: {
required: true
},
Clientname: {
required: true
},
ClientLogin: {
required: true
},
ClientPassword: {
required: true
},
email: {
required: true,
multiemail: true
}
},
messages: {
Contact: {
required: "Please enter your Contact Nmae."
},
Clientname: {
required: "Please enter your Client Name"
},
ClientLogin: {
required: "Please enter a login."
},
ClientPassword: {
required: "Please enter a password"
},
email: {
required: "Please enter an Email Address",
multiemail: "You must enter a valid email, or comma separate multiple"
}
}
});
});
</script>
<input type="Text" id="email" name="Email" value="#Trim(Email)#" maxlength="60" class="inputText430 email required">
Я нашел это, который должен получить многократную валидатор работы:
jQuery.validator.addMethod(
"multiemails",
function (value, element) {
if (this.optional(element)) // return true on optional element
return true;
var email = value.split(/[;,]+/); // split element by , and ;
valid = true;
for (var i in email) {
value = email[i];
valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element);
}
return valid;
},
jQuery.validator.messages.multiemail);
Но я не могу заставить его работать правильно. Может кто-то, пожалуйста, помогите мне получить возможность проверять 2 или более электронных писем в одном текстовом поле?
Заранее спасибо.
(отредактирован, чтобы добавить multiemail в правилах и сообщениях) (отредактированные с раствором ниже) SOLUTION
<form>
<input id='emailTest' name='emailTest' />
<input type='submit' />
</form>
<script type="text/javascript">
jQuery.validator.addMethod(
"multiemail",
function (value, element) {
var email = value.split(/[;,]+/); // split element by , and ;
valid = true;
for (var i in email) {
value = email[i];
valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element);
}
return valid;
},
jQuery.validator.messages.multiemail
);
$("form").validate({
debug: true,
rules: {
emailTest: {
multiemail: true
}
},
messages: {
emailTest: {
multiemail: "You must enter a valid email, or comma separate multiple"
}
},
submitHandler: function(form) {
return false;
}
});
Как это не работает правильно? Вы получаете сообщение об ошибке, не вызывает ли функцию? я подозреваю ошибку, поскольку у вас есть 'jQuery.validator.messages.multiemails' как параметр в функции addMethod, но я не вижу определения для этого в вашем коде, так что вы, вероятно, получаете неопределенную переменную ошибку. –
В консоли не появляется ошибка, и проверка поля электронной почты работает как обычно, так как в этом случае только 1 письмо будет считаться действительным. –