jQuery - 有一个我无法检测到的类

时间:2011-10-04 10:46:26

标签: jquery class

我正在使用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'选项)。

我尝试重命名类名但遇到同样的问题。

你能帮忙吗?

谢谢!

3 个答案:

答案 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){
   ...