【发布时间】: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