我有一个带有电子邮件字段的表单 作为验证的一部分,我想排除某些域名(例如gmail,yahoo等)
我找到了以下函数,它应该搜索我认为是搜索我的电子邮件字符串的不错的子字符串: jquery/javascript check string for multiple substrings:
function isSubStringPresent(str){
for(var i = 1; i < arguments.length; i++){
if(str.indexOf(arguments[i]) > -1){
return true;
}
}
return false;
}
isSubStringPresent('myemail', 'gmail', 'yahoo', ...)
我对如何将此函数与jquery验证器插件集成感到困惑。
请参阅以下内容:
我的表格下面有以下内容:
$(document).ready(function(){
$.validator.addMethod(
"wrong_domain",
THE isSubStringPresent FUNCTION SHOULD BE INSERTED HERE SOMEHOW...
},
'Not an acceptable email' );
$.validator.classRuleSettings.wrong_domain = { wrong_domain: true};
$('#registration-form').validate({
rules: {
FirstName: {
required: true,
},
Email: {
required: true,
email: true,
wrong_domain: true
},
有人可以告诉我该怎么做吗?
答案 0 :(得分:1)
尝试使用apply将多个排除的域传递给验证函数:
var excludes = ['myemail', 'gmail', 'yahoo'];
$.validator.addMethod(
"wrong_domain",
function(value, element) {
// take a shallow copy of excludes
var myArguments = excludes.slice(0);
// add value to the front of the arguments
myArguments.unshift(value);
// use myArguments as the arguments array for isSubStringPresent
return !isSubStringPresent.apply(this, myArguments);
},
'Not an acceptable email' );
以下是Fiddle的示例。这将在每次keypress
事件后验证输入。