如何在不让浏览器更改文本框的可视外观的情况下禁用HTML文本框?
我们使用JQuery禁用:$(".datepick").attr('readonly', 'readonly');
工作正常,但在Firefox中,文本框显示为灰色背景和粗边框。我们希望防止这种情况发生。
我们这样做的原因是将JQuery日期选择器文本框设置为只读(因此用户必须使用日历弹出区域)。
答案 0 :(得分:6)
您可以通过模糊focus
上的文字输入来实现:
$('.datepick').focus(function(){
this.blur();
});
或者,您可以在输入中禁用文本输入:
$('.datepick').keydown(function(e){
e.preventDefault();
});
答案 1 :(得分:3)
如果要覆盖已禁用输入框的样式,请显式设置输入文本框的样式,如下所示:
input[type=text] {
color: #000;
background-color: #fff;
}
/* alternatively you could add textarea to this as well */
另外,只要将输入设置为disabled并使用禁用的css样式,就可以设置类似'disabled'的css类:
input[type=text].disabled {
/* disabled styling goes here */
}
然后有一些像这样的代码:
$(some_input).attr('disabled', 'disabled');
$(some_input).addClass('disabled');
并重新启用该字段,您可以尝试以下内容:
$(some_input).removeAttr('disabled');
$(some_input).removeClass('disabled');
答案 2 :(得分:0)
input
元素的disabled属性会在不改变外观的情况下阻止焦点和输入。
答案 3 :(得分:0)
试试这个:
$(".ui-state-disabled").removeClass("ui-state-disabled");
我正在处理一些可拖动/可放置的元素,并希望在不改变其外观的情况下禁用该功能。
答案 4 :(得分:-1)
关于attr('disabled', true)
的情况。重新启用,removeAttr('disabled')
^样式已停用,因为您要求停用
^只读样式,所以你可能只想覆盖/明确定义css中的border
和background
。