Javascript IE11没有';我不想把重点放在“disabled”元素上

Javascript IE11没有';我不想把重点放在“disabled”元素上,javascript,jquery,html,internet-explorer-11,Javascript,Jquery,Html,Internet Explorer 11,我试图强制文本只能在两个文本字段之一中输入 当一个字段失去焦点时,我会检查它的值,如果它不是空的,我会禁用另一个文本字段 下面是一个例子: HTML: 这在Chrome和Firefox中运行得很好,但IE11似乎不支持focusondisabled元素 我找到的唯一解决方案是,使用readonly属性,而不是disabled属性。对于我的应用程序来说,这不是一个理想的解决方案 在IE11中有没有一种方法可以实现这一点,同时仍然使用disabled属性 IE11不支持focusondisabled

我试图强制文本只能在两个文本字段之一中输入

当一个字段失去焦点时,我会检查它的值,如果它不是空的,我会禁用另一个文本字段

下面是一个例子:

HTML:

这在Chrome和Firefox中运行得很好,但IE11似乎不支持
focus
on
disabled
元素

我找到的唯一解决方案是,使用
readonly
属性,而不是
disabled
属性。对于我的应用程序来说,这不是一个理想的解决方案

在IE11中有没有一种方法可以实现这一点,同时仍然使用
disabled
属性

IE11不支持
focus
on
disabled
属性的原因是什么

提前感谢您的建议和回答


编辑:这里是一个关于JSFIDLE的示例,当在IE11上运行时,它将重现文章中解释的问题,简单地说,而不是使用
focusout
使用
input
事件:

$("#textOne").on('input', function() {
    if( $.trim($("this").val()) == "") {
    $("#textTwo").prop('disabled', false);
  } else {
    $("#textTwo").prop('disabled', true);
  }
});

$("#textTwo").on('input', function() {
    if( $("#textTwo").val() == "") {
    $("#textOne").prop('disabled', false);
  } else {
    $("#textOne").prop('disabled', true);
  }
});

var $inp = $("#textOne, #textTwo");
$inp.on("input", function() {
   $inp.not(this).prop("disabled", $.trim(this.value));
});
解释:on focusout对于IE来说太晚了,无法获取最后操作的输入元素的参考,而
(on)input
事件将立即发生,因为它会立即发生


想简化你的代码,让你的老板大吃一惊吗?

var $inp = $("#textOne, #textTwo");
$inp.on("input", function() {
   $inp.not(this).prop("disabled", $.trim(this.value));
});

我喜欢这个答案。它解决了我提出的问题,因此我将其标记为已接受的答案。不过,我忘了在最初的帖子中提到,当元素的值发生变化时,不应触发此操作。否则我会使用
change
而不是
focusout
。谢谢
var $inp = $("#textOne, #textTwo");
$inp.on("input", function() {
   $inp.not(this).prop("disabled", $.trim(this.value));
});