shjniu3000
shjniu3000
采纳率92.9%
2016-01-27 08:25 阅读 1.6k
已采纳

文本框失去焦点后,如果字符串为空重新获得焦点

页面中有一个文本框

加载该页面时让其获得焦点
$(function(){
$("#tmpName").focus();
});

//js函数
function checkExist() {
var tmpName= $("#tmpName").val();
if(tmpName.length == 0){
//这里还需要让文本框获得焦点
$("#tmpName").focus();
}else if(tmpName.length != 0){
//执行业务
}
}

需求:鼠标离开文本框后,执行完checkExist()重新获得焦点
问题:在页面加载时执行 $("#tmpName").focus(); 文本框能获得焦点
但是执行 checkExist() 函数中的 $("#tmpName").focus(); 不能够让文本控件获得焦点
请问这是什么问题,感谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    showbo GoCityPass新加坡曼谷通票 2016-01-27 09:25

    blur事件你绑定了么有?

     $(function(){
    $("#tmpName").blur(checkExist).focus();
    });
    
    
        function checkExist() {
            var tmpName = $.trim($("#tmpName").val());//去空白
            if (tmpName.length == 0) {
                alert('focus')
                //这里还需要让文本框获得焦点
                setTimeout(function () { $("#tmpName").focus(); }, 10);//还不行可以延时focus
            } else if (tmpName.length != 0) {
                //执行业务
            }
        }
    
    点赞 1 评论 复制链接分享
  • chen956 清泉流 2016-01-27 08:32

    在checkExist()里面的$("#tmpName").focus()是否已经确定执行,tmpName.length == 0这个判断条用起作用了吗。我之前有遇到过判断等于0不执行的情况,
    希望能帮到你

    点赞 评论 复制链接分享
  • 91program 91program 2016-01-27 08:38

    如果确认 $("#tmpName").focus(); 已经执行,但还是没有,可以看看 focus(); 函数是否执行成功。

    点赞 评论 复制链接分享

相关推荐