$input.disabled = true;
or
$input.disabled = "disabled";
哪一种是标准方式?相反,如何启用禁用的输入?
$input.disabled = true;
or
$input.disabled = "disabled";
哪一种是标准方式?相反,如何启用禁用的输入?
当前回答
禁用输入字段的另一种方法是使用jQuery和css,如下所示:
jQuery("#inputFieldId").css({"pointer-events":"none"})
并且为了实现相同的输入,代码如下:
jQuery("#inputFieldId").css({"pointer-events":""})
其他回答
禁用输入字段的另一种方法是使用jQuery和css,如下所示:
jQuery("#inputFieldId").css({"pointer-events":"none"})
并且为了实现相同的输入,代码如下:
jQuery("#inputFieldId").css({"pointer-events":""})
jQuery 1.6+
要更改禁用的属性,应使用.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中的“属性”一样“删除”它们
只是为了新的惯例,并使其适应未来(除非ECMA6(????)发生了巨大变化):
$(document).on('event_name', '#your_id', function() {
$(this).removeAttr('disabled');
});
and
$(document).off('event_name', '#your_id', function() {
$(this).attr('disabled','disabled');
});
在jQuery Mobile中:
用于禁用
$('#someselectElement').selectmenu().selectmenu('disable').selectmenu('refresh', true);
$('#someTextElement').textinput().textinput('disable');
用于启用
$('#someselectElement').selectmenu().selectmenu('enable').selectmenu('refresh', true);
$('#someTextElement').textinput('enable');
您可以使用jQuery prop()方法动态禁用或启用表单元素或控件。prop()方法需要jQuery1.6及更高版本。
例子:
<script type="text/javascript">
$(document).ready(function(){
$('form input[type="submit"]').prop("disabled", true);
$(".agree").click(function(){
if($(this).prop("checked") == true){
$('form input[type="submit"]').prop("disabled", false);
}
else if($(this).prop("checked") == false){
$('form input[type="submit"]').prop("disabled", true);
}
});
});
</script>