JQuery问题....焦点不起作用

use*_*624 4 jquery focus

这是我的jquery代码......

我想验证文本字段的数值.如果无效,则再次聚焦同一文本字段和agian ..

$('#price').blur(function(){
    if($(this).val() !='Preço em USD' && isNaN($(this).val()))
    {
        alert("Enter Integer only ...");
        $('#price').focus();
    }
});
Run Code Online (Sandbox Code Playgroud)

我想设置#price焦点,如果它不是一个整数...我也使用$(this)等但仍然没有工作
在此先感谢...

Jam*_*xon 6

这里的问题似乎是模糊事件完成和焦点事件触发之间的时间量.

将焦点包装在setTimeout中允许在将焦点设置在元素上之前完成blur事件.

$('#price').blur(function(){
    if($(this).val() !='Preço em USD' && isNaN($(this).val()))
    {
        alert("Enter Integer only ...");

        setTimeout(function(){
        $('#price').focus();
        },100);
    }
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到这个的工作副本:http://jsfiddle.net/ttQRD/

UPDATE

正如以下评论中所指出的那样,这里的问题似乎与时间关系不大,而更多地与焦点事件的授权有关.

将焦点事件放在其中setTimeout允许完成当前模糊事件,并在单独的循环中触发焦点事件.