【发布时间】:2014-06-19 15:53:39
【问题描述】:
我目前正在构建一个表单(请查看here)。
我有两列位于底部的输入字段;收入和费用。如果总收入低于总费用,则无法提交表单。这两个字段位于两列的末尾。
他们激活了readonly,因为用户不应该能够更改值,但是必须传递值(disabled 输入字段不允许这样做)。
$('#totalExpenses, #totalIncome').attr('readonly', true);
这适用于大多数浏览器,但不适用于 Internet Explorer。在 IE 9(也可能是更低版本)上,用户可以选择readonly-字段,从而重置该字段。用户无法打字 - 只能专注。
我尝试过类似以下代码的方法,但没有成功。
$('#totalExpenses, #totalIncome').focus(function(){
this.select();
});
【问题讨论】:
-
尝试
this.blur();而不是this.select(); -
@APAD1 在 IE 中删除焦点上的光标,这很棒,但是当我单击它(或使用键盘上的 Tab)时,该值仍会重置为占位符文本。
-
你有什么想法吗,@APAD1?
-
我没有可以使用 IE 的机器,所以我只能猜测。您是否尝试过使用
.attr('readonly','readonly');而不是布尔值? (怀疑它会有所作为,但值得一试) -
没有成功。不过,这很奇怪。占位符例如“总收入” 在选择时不会更改或删除。只有通过上述字段动态输入的值才会被删除或重置。
标签: jquery internet-explorer input readonly