我尝试在 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);
等等
但是,任何东西都不适合我。
最佳答案
我设法通过设置超时来专注于输入来克服
<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);
}
});
关于javascript - focus() 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489913/