这是我的jquery代码......
我想验证文本字段的数值。如果无效,则再次聚焦同一文本字段和agian ..
$('#price').blur(function(){
if($(this).val() !='Preço em USD' && isNaN($(this).val()))
{
alert("Enter Integer only ...");
$('#price').focus();
}
});
我想设置#price焦点,如果它不是一个整数...我也使用了$(this)等但仍然没有工作
在此先感谢...
答案 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
内可以完成当前模糊事件,并在单独的循环中触发焦点事件。