使用Javascript将禁用的属性添加到input元素

我有一个input框,我希望它被禁用,同时隐藏它,以避免移植我的表单时出现问题。

到目前为止,我有以下代码来隐藏我的input:

$(".shownextrow").click(function() { $(this).closest("tr").next().show().find('.longboxsmall').hide(); }); 

这是隐藏的input:

 <input class="longboxsmall" type="text" /> 

我怎样才能将禁用的属性添加到input?

$("input").attr("disabled", true); … …我不知道了。

这是2013年12月,我真的不知道该告诉你什么。

首先它总是.attr() ,那么它总是.prop() ,所以我回到这里更新了答案,并使其更加准确。

一年后,jQuery又改变了主意,我甚至不想跟踪这个。

长话短说,截至目前,这是最好的答案:“你可以同时使用……但这取决于”。

你应该阅读这个答案,而不是: https : //stackoverflow.com/a/5876747/257493

这些变化的发布说明包括在这里:

.attr()和.prop()都不能用于获取/设置值。 改用.val()方法(尽pipe使用.attr(“value”,“somevalue”)将继续工作,就像在1.6之前那样)。

首选用法总结

.prop()方法应该用于布尔属性/属性和HTML中不存在的属性(如window.location)。 所有其他的属性(你可以在html中看到的)可以并应该继续使用.attr()方法进行操作。

换句话说:

“.prop =非文件的东西”

“.attr”=文件的东西

……

我们都可以在这里了解一下API的稳定性

我的来源的工作代码:

HTML WORLD

 <select name="select_from" disabled>...</select> 

JS WORLD

 var from = jQuery('select[name=select_from]'); //add disabled from.attr('disabled', 'disabled'); //remove it from.removeAttr("disabled"); 

如果您使用的是jQuery,那么有几种不同的方法来设置disabled属性。

 var $element = $(...); $element.prop('disabled', true); $element.attr('disabled', true); // The following do not require jQuery $element.get(0).disabled = true; $element.get(0).setAttribute('disabled', true); $element[0].disabled = true; $element[0].setAttribute('disabled', true); 

您可以获取DOM元素,并直接设置禁用的属性。

 $(".shownextrow").click(function() { $(this).closest("tr").next().show() .find('.longboxsmall').hide()[0].disabled = 'disabled'; }); 

或者如果有多个,可以使用each()来设置它们全部:

 $(".shownextrow").click(function() { $(this).closest("tr").next().show() .find('.longboxsmall').each(function() { this.style.display = 'none'; this.disabled = 'disabled'; }); }); 
 $(element).prop('disabled', true); //true|disabled will work on all $(element).attr('disabled', true); element.disabled = true; element.setAttribute('disabled', true); 

以上所有都是完全有效的解决scheme。 select一个最适合您的需求。

只要使用jQuery的attr()方法

 $(this).closest("tr").next().show().find('.longboxsmall').attr('disabled', 'disabled');