为了账号安全,请及时绑定邮箱和手机立即绑定

用jQuery禁用/启用输入?

用jQuery禁用/启用输入?

凤凰求蛊 2019-06-03 13:23:17
用jQuery禁用/启用输入?$input.disabled = true;或$input.disabled = "disabled";哪种方式是标准的?反过来,如何启用禁用的输入?
查看完整描述

4 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

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'文件摘录:

注意:不要使用此方法删除本机属性,如“选中”、“禁用”或“选定”。这将完全删除该属性,一旦删除,将无法再次添加到元素中。使用.prop()将这些属性设置为false。

事实上,我怀疑这种方法是否有许多合法用途,布尔道具的实现方式应该是将它们设置为false,而不是像1.5中的“属性”对应物那样“删除”它们。


查看完整回答
反对 回复 2019-06-03
?
RISEBY

TA贡献1856条经验 获得超5个赞

仅仅是为了新的约定&让它适应未来(除非ECMA 6(?)发生了巨大的变化):

$(document).on('event_name', '#your_id', function() {
    $(this).removeAttr('disabled');});

$(document).off('event_name', '#your_id', function() {
    $(this).attr('disabled','disabled');   });


查看完整回答
反对 回复 2019-06-03
?
湖上湖

TA贡献2003条经验 获得超2个赞

$("input")[0].disabled = true;

$("input")[0].disabled = false;


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 731 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信