0

phpファイルに検索クエリを送信した後、すべてがうまくいくかどうかをテストするために前のページに戻ろうとします。

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

search.phpファイルにアクセスしたときにチェックボックスがオンになっているかどうかをチェックするJQueryコードのこのビットがあります

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

not checkedhtmlマークアップが常に次のように設定されていても、常に返されます

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

この問題の原因は何ですか?どうすれば修正できますか?

4

2 に答える 2

2

ほとんどの jQuery メソッドは、ブール値ではなくオブジェクトを返します (メソッドを連鎖させて目的の結果を得ることができるようにするため)。.not() の戻り値は常にオブジェクトになります (上記の条件で true と評価されます)。

必要なのは、次の 2 つのいずれかです。

$(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 に答える