簡體   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