我想启用/禁用没有jQuery的按钮。这是我的代码:
btn.setAttribute("disabled", true);
作品。但这不是-按钮保持禁用状态:
btn.setAttribute("disabled", false);
disabled
是一个布尔属性,仅它的存在就会导致元素被禁用,无论该属性的值实际是多少。这就是为什么您可以通过将属性设置为来禁用JavaScript中的元素true
的原因,您可以将其设置为任何值(这就是为什么将其设置为false
禁用状态的原因)。
<input type="button" value="I'm disabled" disabled="true">
<input type="button" value="I'm disabled" disabled="false">
<input type="button" value="I'm disabled" disabled="doesn't matter">
<input type="button" value="I'm disabled" disabled="">
在HTML中,您甚至根本不需要为属性设置一个值:
<input type="button" value="I'm disabled" disabled>
但是,建议使用布尔属性的约定(如果您确实想为属性提供值),以便我们在开发人员之间具有一定的一致性,那就是将其值设置为等于属性名称本身。因此,要禁用JavaScript中的元素,请遵循建议的约定:
element.setAttribute("disabled", "disabled");
因此,要 启用
一个元素,您无需将disabled
属性设置为任何值,因为正如我们所看到的那样,这只会禁用它,您需要disabled
完全删除该属性:
element.removeAttribute("disabled");
document.querySelector("input[type='button']").removeAttribute("disabled");
<input type="button" value="I'm NOT disabled" disabled="disabled">
现在,在JavaScript中使用DOM对象时,有两种方法可以影响 元素的当前状态, 并且了解使用这两种技术的效果非常重要:
setAttribute()
,removeAttribute()
和getAttribute()
)。最重要的是, 属性 值可以不同于 属性
值。
这可能会造成混淆,但是HTML状态是元素从外部看起来的样子,而属性状态是内部真正发生的事情,例如您可以戴上笑脸,以便看着您的人认为您很高兴(
HTML状态),但实际上您可能对真实状态(属性状态)感到难过。
如果尚未设置属性状态,那么属性状态就很重要,并且将完全控制元素的状态。设置属性状态后,它会覆盖任何可能的属性状态,并控制元素的实际状态。
// Get a reference to the button
var btn = document.querySelector("[type=button]");
// Test what the current HTML state is:
console.log(btn.getAttribute("disabled"));
// Test what the current mapped property state is:
console.log(btn.disabled);
// Change the property state, which will override the HTML state and
// and cause it to become enabled.
btn.disabled = false;
// Test what the current HTML state is:
console.log(btn.getAttribute("disabled")); // null because property overrode HTML
// Test what the current mapped property value is:
console.log(btn.disabled);
<input type="button" value="I'm disabled" disabled="disabled">
从 MDN :
要启用该元素,请完全忽略此属性,而不是将值设置为
false
。
我是检票口开发的初学者。我有一个关于弹出对话框的问题。当我点击按钮时会触发此对话框。 此对话框包含一个复选框(Accept terms)和下面的几个单选按钮,以及两个按钮,一个是cancel,另一个是Accept。 我的问题是,我需要确保,我选择了复选框和一个无线电来设置按钮“Accept”以启用状态,否则它应该被密封(enabled=false)。 问题是单选按钮位于不同的文件中(它们位于其他文
问题内容: 我有这个HTML: 我该如何做这样的事情: 当文本字段为空时,应禁用提交(disabled =“ disabled”)。 在文本字段中键入内容以删除禁用的属性时。 如果文本字段再次变为空(删除了文本),则应再次禁用提交按钮。 我尝试过这样的事情: …但这不起作用。有任何想法吗? 问题答案: 问题在于,仅当焦点从输入移开(例如,有人单击输入或将选项卡移出输入)时,更改事件才会触发。尝试改
这是一个很奇怪的问题,因为我很确定逻辑是正确的,但它仍然不起作用。因此,当GUI启动时,在启动函数中,我对每个按钮、Kbutton、Bbutton等使用以下代码行将大多数按钮设置为灭活:
问题内容: 所以我有一个像这样的按钮: 我要如何禁用和启用它?我已经尝试过,但是将其重新启用是一个问题。我尝试将其设置回false,但是没有启用它。 问题答案: 使用JavaScript 禁用HTML按钮 启用html按钮 使用jQuery jQuery 1.6之前的所有版本 禁用HTML按钮 启用html按钮 1.6之后的所有版本的jQuery 禁用HTML按钮 启用html按钮 PS更新了基于
问题内容: $input.disabled = true; 要么 哪种标准方法?相反,如何启用禁用的输入? 问题答案: jQuery 1.6以上 要更改属性,您应该使用函数。 jQuery 1.5及以下 该函数不存在,但具有相似的功能: 设置禁用的属性。 要再次启用,正确的方法是使用 在任何版本的jQuery中 您始终可以依赖实际的DOM对象,并且如果只处理一个元素,它可能比其他两个选项要快一些:
问题内容: 我了解到,您可以仅通过将HTML按钮附加到其标签来禁用(使其实际上不可点击),但不能将其作为属性,如下所示: 由于此设置不是属性,因此如何通过JavaScript动态添加此设置以禁用以前启用的按钮? 问题答案: 由于此设置不是属性 这是一个属性。 一些属性定义为布尔值,这意味着您可以指定它们的值,而忽略其他所有内容。即,您只包括粗体部分,而不是disabled =“ disabled