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

2022-08-30 02:00:36

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

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

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

这是因此被隐藏的输入:

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

如何将禁用属性添加到输入中?


答案 1

$("input").attr("disabled", true);截至...我再也不知道了。

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

首先它总是,然后它总是,所以我回到这里更新了答案,使它更准确。.attr().prop()

然后一年后,jQuery再次改变了主意,我甚至不想跟踪这一点。

长话短说,截至目前,这是最好的答案:“你可以同时使用两者......但这要视情况而定。

您应该阅读此答案:https://stackoverflow.com/a/5876747/257493

他们关于该更改的发行说明包含在此处:

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

首选用法摘要

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

或者换句话说:

“.prop = 非文档内容”

“.attr” = 文档内容

... ...

愿我们在这里学到关于API稳定性的教训...


答案 2

来自我的源代码的工作代码:

HTML 世界

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

JS世界

var from = jQuery('select[name=select_from]');

//add disabled
from.attr('disabled', 'disabled');



//remove it
from.removeAttr("disabled");