jQuery focus()和select()在Firefox中不起作用但在Chrome中有效

时间:2012-07-12 15:23:47

标签: jquery firefox focus

我正在尝试验证输入语句,如果输入错误,用户会得到一个Bubble Div通知输入不正确。我试图将焦点恢复为错误的输入元素并选择其中的文本。该代码适用于Chrome,但不适用于Firefox。谁能帮我这个? 。我在这里发布代码:

$("#inner-tbl").on('blur', 'input[type=text]', function(e) {
    var checkval = $(this).val();
    checkval = checkval.replace(/\s/g,'');
    $(this).val(checkval);
    console.log(checkval);
    var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
    if(!numericReg.test(checkval)) {
        $(this).addClass("error");
        $(this).focus().select();
        console.log("Not an integer");
        var ip_width, ip_height, x;
        ip_width = $(this).outerWidth();
        ip_height = $(this).outerHeight();
        x = $(this).offset();
        console.log("Width :"+ip_width+" Height :"+ip_height+" Top :"+x.top+" Left :"+x.left);
        $("body").append("<div class='error_bubble'><span class='errordiv'>Numeric value.</span></div>");
        $(".error_bubble").css({
            position: 'absolute',
            top: (x.top+30)+'px',
            left: (x.left-30)+'px'
        });
    } 
});

这是jsfiddle:http://jsfiddle.net/neoragex/Wk35w/

2 个答案:

答案 0 :(得分:0)

在Chrome&amp; IE,文本输入字段是聚焦和高亮

在Firefox中,文本输入字段被聚焦,但光标位于未突出显示的文本的开头

$("#surname").focus();
$("#surname").select(); // for Firefox

答案 1 :(得分:0)

你可以使用return false和它为firefox工作。

        $(this).focus().select();
        return false;