我已经在这上面工作了几个小时了,但似乎不能让它工作。我需要一个以上的电子邮件在我们的客户部分,在同一个输入字段。
现在我有(这对一封电子邮件很有效):
<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个或更多电子邮件的能力吗?
提前谢谢。
(编辑以在规则和消息中添加多电子邮件)(使用下面的解决方案进行编辑)解决方案
<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;
}
});
发布于 2013-07-30 07:02:45
我认为代码中有一些语义错误,这会导致一些你意想不到的事情发生。
我已经设法让你的自定义处理程序按名称而不是按类型映射到字段-我不确定覆盖在插件中是否有效。
rules: {
emailTest: {
multiemail: true
}
}
另外,在处理程序中,您将multiemails
作为标识符,并在稍后将其称为multiemail
,但不确定这会产生多大影响。
下面是完整的工作示例:http://jsfiddle.net/jbergler/7jXn7/2/
https://stackoverflow.com/questions/17927971
复制相似问题