【问题标题】:Internet Explorer deletes value of readonly input field on selectionInternet Explorer 在选择时删除只读输入字段的值
【发布时间】: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


【解决方案1】:

我刚刚发现如果你使用 objTextarea.text('text') 而不是 objTextarea.val('text') 会在 IE11 中出现这个问题。

【讨论】:

    【解决方案2】:

    实现我想要的结果的最佳(可能也是唯一)方法是简单地隐藏 totalIncometotalExpenses 字段的 read-only 版本,然后与表格一起提交。此后,我能够禁用原来的 totalIncometotalExpenses 字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      相关资源
      最近更新 更多