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

时间:2011-06-26 15:55:56

标签: jquery focus

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

将焦点包含在setTimeout中可以在将焦点设置在元素上之前完成模糊事件。

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

        setTimeout(function(){
        $('#price').focus();
        },100);
    }
});

您可以在此处查看此工作副本:http://jsfiddle.net/ttQRD/

<强>更新

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

将焦点事件放在setTimeout内可以完成当前模糊事件,并在单独的循环中触发焦点事件。