在jQuery中切换禁用的属性

我有一个复选框可以启用或禁用select元素

其实我用这个简单的代码工作正常。

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

这是最好的方式还是有像.toggle()函数来禁用/启用之间切换?


你应该使用.prop来禁用:

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

更新:没有意识到当前属性值是该函数的一个参数; 这个版本更清洁:

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

更新:ES2015

$("#menuContinenti").prop("disabled", (_, val) => !val);

你可以编写你自己的插件来做这样的事情。

在jQuery之后添加这个,最好在一个脚本文件中。

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

然后像这样使用它:

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

礼貌:使用jQuery切换输入禁用的属性


你可以使用下面的$ .is函数来检查

$("#filtri").change(function(){
    $("#menuContinenti").attr("disabled", ! $(this).is(':checked'));    
});
链接地址: http://www.djcxy.com/p/22993.html

上一篇: toggle disabled attribute in jquery

下一篇: ReferenceError: Can't find variable: jQuery