当前位置: 首页 > 面试题库 >

JavaScript 禁用/启用jQuery输入?

鲜于星波
2023-03-14
问题内容

$input.disabled = true;

要么

$input.disabled = "disabled";

哪种标准方法?相反,如何启用禁用的输入?


问题答案:

jQuery 1.6以上

要更改disabled属性,您应该使用.prop()函数。

$("input").prop('disabled', true);
$("input").prop('disabled', false);

jQuery 1.5及以下

.prop()函数不存在,但.attr()具有相似的功能:

设置禁用的属性。

$("input").attr('disabled','disabled');

要再次启用,正确的方法是使用.removeAttr()

$("input").removeAttr('disabled');

在任何版本的jQuery中

您始终可以依赖实际的DOM对象,并且如果只处理一个元素,它可能比其他两个选项要快一些:

// assuming an event handler thus 'this'
this.disabled = true;

使用.prop().attr()方法的优点是可以为一堆选定项设置属性。

注意:
在1.6中,有一种.removeProp()听起来很像的方法removeAttr(),但不应在本'disabled' 文档中的诸如Excerpt之类的本机属性上使用:

注意:请勿使用此方法删除本机属性,例如选中,禁用或选定。这将完全删除该属性,并且一旦删除,就不能再次将其添加到element中。使用.prop()将这些属性设置为false。

实际上,我对此方法有很多合法用途表示怀疑,布尔道具的使用方式应该设置为false,而不是像1.5中的“属性”对应对象那样“删除”它们。



 类似资料:
  • 问题内容: 显然一个被禁用的没有被任何事件处理 有没有解决此问题的方法? 在这里,我需要单击输入以启用它。但是,如果我不激活它,则不应发布输入。 问题答案: 禁用的元素不会触发鼠标事件。大多数浏览器会将事件从禁用元素传播到DOM树,因此事件处理程序可以放在容器元素上。但是,Firefox不会表现出这种行为,当您单击禁用的元素时,它根本不执行任何操作。 我想不到更好的解决方案,但是,为了完全兼容跨浏

  • 问题内容: 所以我有一个像这样的按钮: 我要如何禁用和启用它?我已经尝试过,但是将其重新启用是一个问题。我尝试将其设置回false,但是没有启用它。 问题答案: 使用JavaScript 禁用HTML按钮 启用html按钮 使用jQuery jQuery 1.6之前的所有版本 禁用HTML按钮 启用html按钮 1.6之后的所有版本的jQuery 禁用HTML按钮 启用html按钮 PS更新了基于

  • 问题内容: 我有这个HTML: 我该如何做这样的事情: 当文本字段为空时,应禁用提交(disabled =“ disabled”)。 在文本字段中键入内容以删除禁用的属性时。 如果文本字段再次变为空(删除了文本),则应再次禁用提交按钮。 我尝试过这样的事情: …但这不起作用。有任何想法吗? 问题答案: 问题在于,仅当焦点从输入移开(例如,有人单击输入或将选项卡移出输入)时,更改事件才会触发。尝试改

  • 问题内容: 我的页面中似乎没有以下javascript,但无法正常运行。 我想在输入时禁用提交表单,或者更好的是,将其称为ajax表单提交。两种解决方案都可以接受,但是我上面包含的代码不会阻止表单的提交。 问题答案: 如果未捕获,请捕获: 编辑:错过了,最好使用而不是 编辑2:正如在某些较新版本的Firefox中一样,不阻止表单提交,因此将keypress事件添加到表单也更安全。通过将事件仅绑定到

  • 我的页面中有以下javascript,它似乎不起作用。 我想在回车时禁用提交表单,或者更好的是,调用我的ajax表单提交。这两种解决方案都是可以接受的,但是我上面包含的代码不会阻止表单提交。

  • 问题内容: 如何使用jQuery启用或禁用锚点? 问题答案: 为了防止锚跟随指定的位置,我建议使用: