jquery - IE10 - 文本框属性禁用/启用

标签 jquery asp.net textbox internet-explorer-10

我有一些文本框,当用户单击其中一个文本框时,所有其他文本框将被禁用。它在 Firefox 中工作正常,我无法理解的是,启用文本框在 IE10 中不起作用(启用时我无法编辑文本框中的值(?)。下面是我的 jquery 代码,我是否缺少IE10 的东西吗?我已经尝试过 .prop('disable', false), .prop('readOnly', false) 但在 IE10 中没有任何效果,但在 Firefox 中没有问题。请帮忙。

文本框onclick事件:

function DisableTboxExceptActiveTxbox(txtbox) {
  $('input[id*="tbxQty"]').attr("disabled", true);
  $(txtbox).removeAttr("disabled");
}

取消按钮 onclick 事件:

function CancelUpdate(btn) {
  $('input[id*="tbxOrderQty_"]').removeAttr('disabled');
}

最佳答案

禁用或启用文本框时应使用 .prop('disabled', true|false),而不是 attr('disabled', true) >removeAttr('已禁用')。所以正确的代码是:

function DisableTboxExceptActiveTxbox(txtbox) {
  $('input[id*="tbxQty"]').prop("disabled", true);
  $(txtbox).prop("disabled", false);
}

更新:

第一条语句似乎导致 IE 10 和 11 禁用当前文本框,尽管第二行删除了 disabled 属性,但当您开始与文本框。当您在运行代码时查看 DOM Explorer 时,您可以看到这一点。

试试这个代码:

function DisableTboxExceptActiveTxbox(txtbox) {
  $('input[id*="tbxQty"]').not(txtbox).prop("disabled", true);
}

另请参阅此 fiddle :http://jsfiddle.net/pX6Kv/2/

这将选择所有文本框,然后过滤掉当前文本框,然后将剩余的文本框设置为禁用。有趣的错误。如果还没有的话,我会将其提交给 Microsoft。


您应该考虑向每个文本框添加一个类,而不是使用 [id*="tbxQty"],因为它在大多数浏览器中会更快。

然后,取消更新:

function CancelUpdate(btn) {
  $('input[id*="tbxOrderQty_"]').prop('disabled', false);
}

您可能还希望更加一致地缩写“textbox”,如 tbxtxtboxTboxTxbox都用了。只是一个建议:)

关于jquery - IE10 - 文本框属性禁用/启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24274407/

相关文章:

javascript - 已编辑 : Switch between viewable ares of the HTML <canvas> preferably without page load

Javascript else 循环在 if 循环执行后执行

c# - 使用 C# 在 asp.net 中排序列表和下拉列表

javascript - 加载页面后使用 jquery 替换或附加文本?

asp.net - 让 ASP.NET 页面定期运行的最佳方法?

javascript - Firefox:清除文本框值时失去焦点

excel - 从多个 Microsoft Word 文件中提取文本框数据

jquery - 使用 jQuery 设置值时的 TextBox onchange

jquery - 以速度循环/重新启动动画,无需反向播放

javascript - 如何在数字输入字段中以这种 'xxx-xxx-xxxx' 格式输入电话号码