ajax呼び出しから返されたブール値をチェックし、それがtrueであるかどうかをチェックするようにチェックボックスを設定する必要がある非常に単純なjqueryがあります。
console.log("loc: " + r.location.defaultLocation);
if( r.location.defaultLocation == true ) {
$('#loc-default').attr('checked',true);
}
これは、モーダル フォームを開く onclick 関数で実行されます。返された場所情報が、これがデフォルトの場所であることを示している場合は、チェックボックスをオンにする必要があります。1 つのページに 5 つ、つまりユーザーがクリックできる場所が 5 つあります。
私が実行しているのは、 r.location.defaultLocation
(console.log 行ごとに) false を返しても、チェックボックスがまだチェックされていることです。私は何を間違っていますか?
true/false はブール値ではなく文字列でなければならないと主張する人のために:
これはの結果ですconsole.info(typeof(r.location.defaultLocation));
そして、これが の結果ですconsole.dir(r)
。(group
機密情報のためぼかしています。)
問題を見つけました
#loc-default
どうやらjqueryは、最初のものがチェック済みとマークされた後にチェックされたことを覚えています。関数にelseを追加したところ、動作するようになりました:
if( r.location.defaultLocation == true ) {
$('#loc-default').attr('checked',true);
}
else {
$('#loc-default').attr('checked', false);
}