16

選択した要素を有効または無効にするチェックボックスがあります

実際、私はこの単純なコードを使用しています。

$("#filtri").change(function(){
    if ($("#menuContinenti").attr("disabled")) {
        $("#menuContinenti").removeAttr("disabled");
    } else {
        $("#menuContinenti").attr("disabled", "disabled");
    }
});

これが最善の方法.toggle()ですか、それとも無効/有効を切り替える機能のようなものがありますか?

4

3 に答える 3

47

あなたは.prop障害者のために使うべきです:

$("#menuContinenti").prop('disabled', function () {
   return ! $(this).prop('disabled');
});

更新:現在のプロパティ値が関数の引数であることを認識していませんでした。このバージョンはさらにクリーンです:

$("#menuContinenti").prop('disabled', function (_, val) { return ! val; });

更新:ES2015

$("#menuContinenti").prop("disabled", (_, val) => !val);
于 2012-08-10T14:04:25.000 に答える
8

このようなことを行う独自のプラグインを作成できます。

できればスクリプトファイルで、jQueryの後にこれを追加します。

(function($) {
    $.fn.toggleDisabled = function(){
        return this.each(function(){
            this.disabled = !this.disabled;
        });
    };
})(jQuery);

次に、次のように使用します。

$('#my-select').toggleDisabled();

礼儀:jQueryを使用して入力無効属性を切り替えます

于 2012-08-10T14:06:44.833 に答える
1

以下のような$.is関数を使用して確認できます

$("#filtri").change(function(){
    $("#menuContinenti").attr("disabled", ! $(this).is(':checked'));    
});
于 2012-08-10T14:15:11.180 に答える