javascript - focus() 在 IE 中不起作用

标签 javascript jquery html internet-explorer focus

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

fiddle here

关于javascript - focus() 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489913/

相关文章:

html - 在 css 中取消设置 css 属性。是否可以?

html - 如何使用 CSS 计数器编写 CSS 选择器以将格式应用于特定元素?

html - 背景图片不会延伸到页脚

php - 什么更快? Ajax 加载 JSON 或 Ajax 加载完成输出

php - jQuery、Ajax、PHP 两个复选框

php - jquery跨域文件上传

javascript - 使水平滚动网站在移动设备上工作

javascript - Chrome 源未显示从 Typescript 生成的文件并具有源映射

javascript - 通过 jQuery ajax 将 jQuery 构造的数组发送到 PHP

javascript - JQuery 从 @Html.DropDownListFor asp.net mvc 多选下拉列表框获取最后更改的值