1

jQuery ダイアログの条件として使用したい小さなコードがあります。チェックボックスがチェックされている場合はボタンを有効にし、チェックされていない場合は無効にします。以下のコードはボタンを問題なく無効にしますが、チェックボックスをオンにしても有効にしません。

複数のバリエーションを試しましたが、コードでこれを機能させることができません (Fiddle ではいくつか正常に機能します)。助けてくれて本当にありがとうございます。

JS スニペット

if (button.text() == "Apply") {
    if ($("selectLocation").is(':checked'))
        button.enabled(true); // checked
    else
        button.enabled(false);  // unchecked
}

HTML

<input type="checkbox" name="selectLocation" />
4

4 に答える 4

2

これを解決するには、Jquery の .prop() を使用する必要があります。

if (button.text() == "Apply"){
    if ($("selectLocation").is(':checked')){
        button.prop('disabled', false);
    }
    else{
        button.prop('disabled', true);
    }
}

この状況で .attr() を機能させることができませんでした

于 2013-07-15T14:39:58.110 に答える
0

このようにしてみてください:

$("input[name=selectLocation]")

selectLocation名前の要素ではなくタグの要素を選択しているため、機能していませんselectLocation

于 2013-07-15T14:38:22.477 に答える
0

ボタンが jquery 要素の場合:

button.attr("disabled", "disabled"); //to disable it
button.removeAttr("disabled"); //to reenable it

コードでは、次のようにする必要があります。

if (button.text() == "Apply") {
    if ($("selectLocation").is(':checked'))
        button.removeAttr("disabled"); //to reenable it
    else
        button.attr("disabled", "disabled");
}

セレクター$("input[name=selectLocation]")が機能するはずです

于 2013-07-15T14:38:37.450 に答える
0

jQueryがそのような名前を選択するかどうかわからない場合は、IDを追加してセレクターを変更してください。

if (button.text() == "Apply") {
    if ($("#selectLocation").is(':checked'))
        button.removeAttr("disabled");
    else
        button.attr("disabled", "disabled");
}

<input id="selectLocation" type="checkbox" name="selectLocation" />
于 2013-07-15T14:38:38.833 に答える