JQuery输入框焦点问题

时间:2011-03-31 07:22:24

标签: jquery focus inputbox

我想检查jQuery中输入框模糊的一些条件。一旦我从输入框中失去焦点,我就无法再次关注该框。

代码:

if ($("#Amount").val() < 10000) { 
    alert('The minimum amount is $10,000.'); 
    $("#Amount").focus();
} 
else {
}

一旦我从$("#Amount")失去焦点,它就不会把焦点放在那个控制上。

提前致谢。

4 个答案:

答案 0 :(得分:2)

嗯,这就是你要找的东西,我相信:http://jsfiddle.net/6Seks/5/

编辑:刚刚注意到我的答案与Scroobler's post的接近程度,尽管我的答案不会超过10000。

答案 1 :(得分:1)

jQuery中的

.focus()将关注该元素,但在.blur()事件内时不会访问文本输入。您可以使用.setTimeout()函数调用焦点,以便在.blur()事件之后发生:

$("#Amount").blur(function() {
    if ($("#Amount").val() < 10000) { 
        alert('The minimum amount is $10,000.'); 
        setTimeout(function() {
            $("#Amount").focus();
        }, 100);
    }
});

但是,我建议稍微改变一下以确定用户实际输入了一个数字:

$("#Amount").blur(function() {
    var obj = $(this);
    if (isNaN(obj.val()) || obj.val() < 10000) { 
        $('#result').html('The minimum amount is $10,000.'); 
        setTimeout(function() {
            obj.focus();
        }, 100);
    }
});

action here

中查看

*根据Levi Morrison的评论*

进行了更正

答案 2 :(得分:0)

尝试这样的事情:

$("#Amount").blur(function() {
    if ($(this).val() < 10000) {
        alert('your message...');
        $(this).focus();
    }
})

答案 3 :(得分:0)

我不确定我是否明白你在寻找什么 如果您在执行某些操作后禁用输入框,则可以使用:

jquery的

$("#Amount").prop("disabled", true);

的javascript

document.getElementById("Amount").disabled = true;

所以它会是这样的:

$("#Amount").change(function() { 
    if (this.value > 10000) {
        alert('The minimum amount is $10,000.');
    }
    else {
        document.getElementById("Amount").disabled = true;
    };
})


...对不起,如果这不是你想要的。