【问题标题】:focus() doesn't working in IEfocus() 在 IE 中不起作用
【发布时间】:2023-03-31 16:50:01
【问题描述】:

我尝试在 IE 中使用 focus(),但它不起作用。

这是我的源代码。

--------------HTML------ ----------

<tr>
<td>
    <input type="text" id="INPUT_TEST_1" onblur="fn_onblur(this)"/>
    <input type="text" id="INPUT_TEST_2" onblur="fn_onblur(this)"/>
</td>

--------------JavaScript------------------ ----------

function fn_onblur(obj){
var id = obj.id;
var target = $("#"+id);
if(gfn_isNull(target.val())){
    alert(id+" need input value!!!");
    target.focus();
    setTimeout(function() { 
        obj.focus();
    }, 1);
    return;
}

}

问题是当我点击 INPUT_TEST_1 和 INPUT_TEST_2 没有任何值时,

focus() 不起作用,但这适用于 Chrome 和 FF。

我已经试过了

setTimeout(function(){obj.focus();},1);
setTimeout(function(){target.focus();},1);
setTimeout(function(){$("#"+id).focus();},1);
setTimeout(function(){document.getElementById(id).focus();},1);

等等

但是,我没有任何效果。

【问题讨论】:

  • 您确定是focus() 不起作用,还是gfn_isNull(target.val()) 在IE 中返回false
  • @Rory McCrossan 是的。 gfn_isNull 返回“false”,我确信 focus() 不起作用,因为我已经在 Chrome 和 FF 上进行了多次测试。只有 IE 会出现这个问题
  • 如果 gfn_isNull(target.val()) 返回 false,那么您的 if 语句没有被命中。您需要找出为什么在不应该返回false 时返回。 focus 不是问题。
  • @Rory McCrossan - 抱歉,这是我的错误。如果输入为空并且返回 false,则 gfn_isNull 返回 true。这意味着这个函数没有错误。

标签: javascript jquery html internet-explorer focus


【解决方案1】:

我设法通过设置超时来专注于输入来克服

<form>
   <label for="name">Name</label>
   <input id="name" name="name" />
    <br />
   <label for="city">City</label>
   <input id="city" name="city" />
    <br />
</form>

然后..

$('input[name="name"]').blur(function(e){
    if(/^\s*$/.test($(this).val())){
        alert('Value needed');
        setTimeout(function() {e.target.focus();}, 50);
    }
});

fiddle here

【讨论】:

  • 这在输入之一不为空时有效。但是,如果每个输入都是空的,这将显示重复警报。我唯一能做的就是杀死 IE 进程。
【解决方案2】:

去年我在 IE 上的 onblur Html-attribute 遇到了一些问题。我发现它只在设置了 tabindex 属性时才有效。

如果你在 MSDN 上阅读过,就会这样说。

注意:我不知道 IE10 和 IE11 是否仍然存在问题。我们不知道您正在使用哪个版本的 IE。

希望对你有帮助。

【讨论】:

  • IE 7~9 给出了这个错误。我还没有测试 IE10 和 11,因为这必须在 IE 7~9 上工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
相关资源
最近更新 更多