jquery焦点不工作模糊

时间:2011-02-24 12:31:57

标签: jquery

如果验证失败,我正在使用jquery将焦点放在模糊的文本框上。但它在IE中工作但没有工作FF。有什么建议吗?

$("#inputBoxId").blur(function () {
   if ($(this).val() < 10) 
      $("#inputBoxId").focus();

});

4 个答案:

答案 0 :(得分:13)

看起来您需要根据此question使用setTimeout。由于您要立即将焦点放在元素上,因此您需要考虑元素首先离开焦点的时间。

$("#inputBoxId").blur(function() {
    if ($(this).val() < 10) {
        setTimeout(function() {
            $("#inputBoxId").focus();
        }, 100);
    }
});

jsfiddle上工作的示例,在chrome dev频道,firefox和IE8上进行了测试。

答案 1 :(得分:1)

val()将返回字符串,而不是数字。尝试转换,它应该工作:

var value = parseInt($(this).val(), 10);
if (isNaN(value) || value < 10) 
      $("#inputBoxId").focus();

这也将处理非数字值。

答案 2 :(得分:0)

$(this).val().length也会给出长度

$("#inputBoxId").blur(function () {
    if($(this).val().length < 10 ){
          $(this).focus();
     }
});

答案 3 :(得分:0)

//页面可见性:

    document.addEventListener('visibilitychange', function () {

        if (document.hidden) {
            // stop running expensive task

        } else {
            // page has focus, begin running task

        }
    });