以下代码用于检查模糊字段中是否输入了4个数字.如果不是,则删除字段值,并且该字段被聚焦.删除工作正常,但对focus()的调用不起作用.
$('input.dateValue').live('blur',function(event){
if (!(/(\d){4}$/.test($(this).attr('value')))) $(this).attr('value','').focus();
});
Run Code Online (Sandbox Code Playgroud)
为什么对焦点()的调用不关注该领域?
Jos*_*ber 18
由于blur事件在实际失去焦点之前触发,您无法立即使用.focus().你必须将它向下推到堆栈中,以便在input失去焦点后执行它.把你.focus()的计时器(没有必要延迟):
$('input.dateValue').on('blur', function(event)
{
if ( ! /(\d){4}$/.test(this.value) )
{
var $this = $(this).val('');
setTimeout(function (){
$this.focus();
}, 0);
};
});?
Run Code Online (Sandbox Code Playgroud)
这是小提琴:http://jsfiddle.net/TdfFs/
更新:证明这确实工作在Chrome中,我又拨弄:http://jsfiddle.net/TdfFs/1/
| 归档时间: |
|
| 查看次数: |
12316 次 |
| 最近记录: |