toggle disabled attribute in jquery
I've a checkbox that enable or disable a select element
Actually I use this simple piece of code that works fine.
$("#filtri").change(function(){
if ($("#menuContinenti").attr("disabled")) {
$("#menuContinenti").removeAttr("disabled");
} else {
$("#menuContinenti").attr("disabled", "disabled");
}
});
Is this the best way or is there something like a .toggle()
function to switch between disabled/enabled?
You should use .prop
for disabled:
$("#menuContinenti").prop('disabled', function () {
return ! $(this).prop('disabled');
});
UPDATE: didn't realize the current property value is an argument to the function; this version is even cleaner:
$("#menuContinenti").prop('disabled', function (_, val) { return ! val; });
UPDATE: ES2015
$("#menuContinenti").prop("disabled", (_, val) => !val);
You can write your own plugin that does something like this.
Add this after jQuery, in a script file preferably.
(function($) {
$.fn.toggleDisabled = function(){
return this.each(function(){
this.disabled = !this.disabled;
});
};
})(jQuery);
Then use it like this:
$('#my-select').toggleDisabled();
Courtesy: Toggle input disabled attribute using jQuery
你可以使用下面的$ .is函数来检查
$("#filtri").change(function(){
$("#menuContinenti").attr("disabled", ! $(this).is(':checked'));
});
链接地址: http://www.djcxy.com/p/22994.html
上一篇: 无法启用禁用的输入
下一篇: 在jQuery中切换禁用的属性