我正在使用jQuery,为了检测表单中的空字段,我在单击提交按钮时添加了类“l_invalids”。
点击提交按钮时,我有以下代码:
$("#myform :input").find(".l_invalids").each(function(){
alert("hi");
});
if($(".l_invalids")){
alert("Please correct the RED fields before submitting the form");
return false;
}
在加载页面并按下提交按钮后,会出现“请在提交表单前更正RED字段”的消息,尽管我没有看到任何'l_invalids'类(在chrome检查中)。 虽然我可以在搜索字段中找到l_invalids的1匹配(在chrome中)(而不是'find'选项)。
我尝试重命名类名但遇到同样的问题。
你能帮忙吗?
谢谢!
答案 0 :(得分:1)
$(".l_invalids")
这是一个jQuery选择。 jQuery选择永远不会在false
语句中评估为布尔if
,即使它们是空的。您需要测试以查看选择中是否存在length
属性:
if ($(".l_invalids").length) {
这将返回选择中的元素数。如果是0
,则条件失败,因为0
计算为布尔false
。任何其他数字 - 即非空选择 - 的计算结果为布尔true
,因此条件将通过。
答案 1 :(得分:0)
尝试将代码更改为:
if($(".l_invalids").length > 0){
...
}
答案 2 :(得分:0)
问题是在这种情况下检查:
if($(".l_invalids")){
....
$(“。l_invalids”)将一直返回一个JQuery对象,一个对象将始终为“true”。请改用JQuery对象的length属性:
if($(".l_invalids").length > 0){
...
或只是简单:
if($(".l_invalids").length){
...