2012-09-15 41 views
2

说我使用blur()事件有电子邮件ID的确认,即时这样做:jQuery的模糊()异常

$('#email').blur(function(){ 
    //make ajax call , check if duplicate email exist and if duplicate is there do : 
    $('#email-error').html('duplicate email exisit'); 
}); 

然而,当我使用blur(),如果在输入框中IM,点击别的地方(blur事件发生),如果我切换到另一个选项卡,并再次回到(浏览器的)选项卡我的网页冻结,有人可以给我一个替代方案,对此?

+0

需要这个真的很速战速决,puhllease帮助 –

+0

浏览器冻结听起来更像是一个浏览器的问题/错误不是一个JavaScript的问题。你正在使用Firefox我猜? –

+0

@ClickUpvote ooh绝对,它(感谢@sibu)发生在铬和IE浏览器不是Firefox,洙,但我真的好奇,为什么blur()导致它,为什么改变()不 –

回答

3

反而模糊使用.change function.The变化事件被发送到一个元素时,其值changes.Your 模糊事件focusOut事件将不必要的火灾Ajax请求,每次你失去的文本框的集中数据是否有改变与否。

$('#email').change(function(){ 
    //make ajax call , check if duplicate email exist and if duplicate is there do : 
    $('#email-error').html('duplicate email exisit'); 
}); 
+1

我的朋友,你是天才,*弓*,但是你不认为即使我仍然在该输入框上会发生改变吗?我应该允许用户完全输入电子邮件,当他去其他领域的注册时,触发ajax调用应该被解雇? –

+2

@ user1537158更改事件将被调用,只有当用户移动到下一个字段时检查此http://jsfiddle.net/SCs7w/1/ – Sibu

2

而是模糊的增加这样的

$('#email').focusout(function(){ 
    $('#email-error').html('duplicate email exisit'); 
}); 
+0

它将适用于您的情况 – Gautam3164

+1

focusout我试过,而不是模糊,存在相同的异常,我想改变()正在工作完美,直到现在 –

+0

你怎么试着聚焦.. ?? – Gautam3164