我有一个结帐页面,可以不显眼地检查客户是否已经从我们这里订购过。
在他们填写电子邮件地址并将注意力集中到下一个方框后,我会查看电子邮件并提供一个“欢迎回来”类型的东西,可以选择记住他们的详细信息。
我在IE6中遇到问题 - 只要输入框中的焦点丢失,ajax函数就会正常运行,但焦点会返回到输入框。这意味着每当客户试图点击电子邮件输入框时,他们就会一直返回到它并且无法继续。
有没有办法阻止这种行为?
// check when the e-mail box is changed
$("#email").change(function(event) {
$.ajax({
type: "POST",
url: "procBasketEmailLookup.php",
data: $("#checkoutform").serialize(),
success: function(response) {
$('#emailstuffOutput').hide();
$('#emailstuffOutput').html(response);
$('#emailstuffOutput').show('slow');
}
});
// DON'T ALLOW THE PAGE TO SUBMIT
return false;
});
答案 0 :(得分:3)
尝试:
jQuery("#emailInputField").blur();
将它放在AJAX调用的成功处理程序中,甚至放在change()
处理程序中。我无法从你的问题中看出是否是导致问题的AJAX调用,或者它是change()
处理程序。但是这个应该工作。
修改强>
关于Pointy的评论。使用blur()
会使标签序列混乱。另外,Pointy和Mattias指出你从你的处理程序返回false
。由于您不在submit()
处理程序中,因此无需执行此操作。 return false;
也可能是您遇到问题的原因。