Javascript 如何将规则添加到此简单验证中jQuery
我正在尝试编写一个非常简单的表单验证,下面是一个示例片段,它是我的工作原理:Javascript 如何将规则添加到此简单验证中jQuery,javascript,jquery,Javascript,Jquery,我正在尝试编写一个非常简单的表单验证,下面是一个示例片段,它是我的工作原理: if($('input[name=name]').val() == ""){ e.preventDefault(); alert('prevented') } 如果if语句中有一条规则,它就起作用了。我想做的是,在if语句中添加更多的规则,例如: input[name=email] input[name=company] 但像这样的事情是行不通的: if($('input[name=name]').
if($('input[name=name]').val() == ""){
e.preventDefault();
alert('prevented')
}
如果if语句中有一条规则,它就起作用了。我想做的是,在if语句中添加更多的规则,例如:
input[name=email]
input[name=company]
但像这样的事情是行不通的:
if($('input[name=name]').val() && $('input[name=email]').val() && $('input[name=company]').val() == "")
有没有办法把这三条规则加进去?它似乎不适合只使用&&
谢谢你的帮助
&&
优先于=
。这意味着您的表达式被计算为3个不同的表达式,所有这些表达式都需要满足。这些是:
$('input[name=name]').val()
,$('input[name=email]').val()
和$('input[name=company]')。val()==“”
您可能希望所有3个值都等于”
,在这种情况下,您需要执行以下操作:
if($('input[name=name]').val() == "" &&
$('input[name=email]').val() == "" &&
$('input[name=company]').val() == "")
和&
单独的表达式。在您的示例中,三个表达式是:
$('input[name=name]').val()
$('input[name=email]').val()
$('input[name=company]')。val()=“”
$('input[name=name]')。val()=''
$('input[name=email]')。val()=''
$('input[name=company]')。val()=''
if ($('input[name=name]').val() === '' &&
$('input[name=email]').val() === '' &&
$('input[name=company]').val() === '') {
...
}
或在可读性方面:
var isNotEmpty = function(inputName) {
var selector = 'input[name=' + inputName + ']';
return $(selector).val() !== '';
}
var isValid = ['name', 'email', 'company'].every(isNotEmpty);
if (!isValid) {
...
}
您需要单独比较每个值,然后通过
&
if($('input[name=name]').val() == "" &&
$('input[name=email]').val() == "" &&
$('input[name=company]').val() == "")
老实说,在懒惰的日子里,我希望另一种方法也能奏效。谢天谢地,逻辑并非如此。请详细说明前两条规则。