在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