0

将搜索查询提交到 php 文件后,我尝试返回上一页以测试是否一切正常,例如

> search.php [goto] > results.php [backto] > search.php

我有这段 JQuery 代码,它检查是否在登陆 search.php 文件时选中了一个复选框

$(document).ready(function(){       
   if($("input[name=filterSite]").not(':checked')){
       alert("not checked");
   }
});

not checked即使 html 标记始终设置为以下内容,它也始终返回

<input name="filterSite" type="checkbox"   id="filterSite" checked="checked" />

什么可能导致这个问题?我该如何解决?

4

2 回答 2

2

大多数 jQuery 方法返回对象,而不是布尔值(以便您可以链接方法以获得所需的结果)。.not() 的返回值将始终是一个对象(在上述条件下将评估为 true)。

你想要的是这两个之一:

$(document).ready(function(){       
   if($("input[name=filterSite]").not(':checked').size()){
       alert("not checked");
   }
});

或者:

$(document).ready(function(){       
   if($("input[name=filterSite]").is(':checked') == false){
       alert("not checked");
   }
});

.size() 将返回当前属于选择器的元素的数量

.is() 返回布尔值,评估选择器中的元素是否匹配给定条件

于 2012-09-15T23:44:22.973 回答
0

你的jQuery应该是

 $(document).ready(function(){         
 if(!$("input[name=filterSite]:checked")){
       alert("not checked");
   }
});​
于 2012-09-15T23:48:28.183 回答