Javascript jQuery if表单字段';值的s部分匹配数组中的值,然后
我希望我的电子邮件表单由jQuery验证 若用户类型的val()与数组中的任何值匹配,我想在提交之前运行一些函数 前。 如果我打字Javascript jQuery if表单字段';值的s部分匹配数组中的值,然后,javascript,jquery,Javascript,Jquery,我希望我的电子邮件表单由jQuery验证 若用户类型的val()与数组中的任何值匹配,我想在提交之前运行一些函数 前。 如果我打字 abc.com不在数组中。那好吧 bbb.net位于数组中。所以呢 username@ccc.co.uk字符串的一部分在数组中。所以呢 blah@aaa.ne.我不在乎。。。让PHP决定它的电子邮件是否有效。所以,从脚本上说是可以的 html: 我使用了jquery的inArray()方法,但不知何故,例如,username@ccc.co.uk通过验证,即使ccc
abc.com
不在数组中。那好吧
bbb.net
位于数组中。所以呢
username@ccc.co.uk
字符串的一部分在数组中。所以呢
blah@aaa.ne.
我不在乎。。。让PHP决定它的电子邮件是否有效。所以,从脚本上说是可以的
html:
我使用了jquery的inArray()
方法,但不知何故,例如,username@ccc.co.uk
通过验证,即使ccc.co.uk
在数组中
任何解决方案都将不胜感激。thanx.尝试
拆分电子邮件
,并在@
var arr = [
'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'];
$('#test').on('submit', function () {
var _value = $('#mail').val();
if (_value !== '' && _value.indexOf('@') > -1) {
var parts = _value.split('@');
if ($.inArray(parts[1], arr) > 0 || _value == '') {
console.log(_value + ' cant be accepted');
return false;
} else {
console.log(_value + ' is GO!');
return false; //do not submit just for the sake of example.
}
} else {
console.log(_value + ' cant be accepted');
return false;
}
});
尝试
拆分电子邮件
,并在@
var arr = [
'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'];
$('#test').on('submit', function () {
var _value = $('#mail').val();
if (_value !== '' && _value.indexOf('@') > -1) {
var parts = _value.split('@');
if ($.inArray(parts[1], arr) > 0 || _value == '') {
console.log(_value + ' cant be accepted');
return false;
} else {
console.log(_value + ' is GO!');
return false; //do not submit just for the sake of example.
}
} else {
console.log(_value + ' cant be accepted');
return false;
}
});
您正在比较的电子邮件值包含的字符比inArray()方法工作所需的字符更多。这不是一个直接的比较。你可以这样做。它获取“@”之后的所有内容,以便在$.inArray中进行比较
$('#test').on('submit', function() {
var _value = $('#mail').val();
var _value2 = _value.split("@").pop();
if( $.inArray(_value2, arr) > 0 || _value2 == '') {
console.log(_value + ' cant be accepted');
return false;
} else {
console.log(_value + ' is GO!');
return false;//do not submit just for the sake of example.
}
});
您正在比较的电子邮件值包含的字符比inArray()方法工作所需的更多。这不是一个直接的比较。你可以这样做。它获取“@”之后的所有内容,以便在$.inArray中进行比较
$('#test').on('submit', function() {
var _value = $('#mail').val();
var _value2 = _value.split("@").pop();
if( $.inArray(_value2, arr) > 0 || _value2 == '') {
console.log(_value + ' cant be accepted');
return false;
} else {
console.log(_value + ' is GO!');
return false;//do not submit just for the sake of example.
}
});
你可以使用grep
var arr = [
'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'];
$('#test').on('submit', function () {
var _value = $('#mail').val(),
_matches = $.grep(arr, function (val, i) {
return _value.indexOf(val) != -1
});
if (_matches.length > 0) {
//contains something
} else {
console.log(_value + ' cant be accepted');
return false;
}
});
你可以使用grep
var arr = [
'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'];
$('#test').on('submit', function () {
var _value = $('#mail').val(),
_matches = $.grep(arr, function (val, i) {
return _value.indexOf(val) != -1
});
if (_matches.length > 0) {
//contains something
} else {
console.log(_value + ' cant be accepted');
return false;
}
});
您的解决方案非常有效!此外,此解决方案只需检查电子邮件地址是否正确(通过检查是否包含@sign)。非常感谢。@norixxx。。很高兴能帮忙:)错过了一件事。。。如果我键入
@aaa.ne.jp
,表单就会通过。数组中只有第一个值。从第二名开始,很好。例如,@bbb.net
,blah@bbb.net
或bbb.net
,无法通过。您能想到什么问题?我将$.inArray(parts[1],arr)>0
更改为$.inArray(parts[1],arr)>-1
,以便数组中的第一个字符串位于句柄中。:)您的解决方案非常有效!此外,此解决方案只需检查电子邮件地址是否正确(通过检查是否包含@sign)。非常感谢。@norixxx。。很高兴能帮忙:)错过了一件事。。。如果我键入@aaa.ne.jp
,表单就会通过。数组中只有第一个值。从第二名开始,很好。例如,@bbb.net
,blah@bbb.net
或bbb.net
,无法通过。您能想到什么问题?我将$.inArray(parts[1],arr)>0
更改为$.inArray(parts[1],arr)>-1
,以便数组中的第一个字符串位于句柄中。:)