繁体   English   中英

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

[英]IE10 - textbox attribute disabled/enabled

我有文本框,当用户单击其中一个文本框时,所有其他文本框将被禁用。 它在firefox中工作正常,我不明白的是,在IE10中启用文本框不起作用(当enable(?)时我无法编辑文本框内的值。以下是我的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('disabled') 因此正确的代码将是:

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

更新:

似乎第一条语句导致IE 10和11禁用了当前文本框,尽管第二行删除了disabled属性,但是当您开始与文本框进行交互时,IE会重新添加它。 当您在运行代码时查看DOM Explorer时,可以看到此信息。

请尝试以下代码:

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

另请参见此提琴: http : //jsfiddle.net/pX6Kv/2/

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


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

然后,CancelUpdate:

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

您可能还想更加一致地缩写“文本框”,因为都使用了tbxtxtboxTboxTxbox 虽然只是一个建议:)

让我知道这是否有任何变化:

function DisableTboxExceptActiveTxbox(txtbox) {    
  $("input[type=text]").click(function (e) {
    $("input[type=text]").attr("disabled", true);
    $(this).removeAttr("disabled");
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM