2

我尝试在 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);

等等。

但是,任何事情都对我不起作用。

4

2 回答 2

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);
    }
});

在这里摆弄

于 2013-10-21T09:28:44.877 回答
0

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

如果您在 MSDN 上阅读,就会说。

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

希望能帮助到你。

于 2013-10-21T09:07:15.427 回答