jQuery focus()在blur()上再次被触发

时间:2010-09-04 22:34:44

标签: jquery

假设我有一个输入字段“lastname”,但如果“firstname”字段仍为空,我不希望人们插入内容。示例:http://jsfiddle.net/GQyHp/

$('input[name=lastname]').focus(function() {
  if (!$('input[name=firstname]').val()) {
    alert('First enter your first name');
    $(this).blur();
  }
});

如果我点击“姓氏”字段,我会弹出,但点击“确定”后再次触发相同的弹出窗口。如果我删除了blur(),则没有第二个弹出窗口。

如何防止blur()函数触发此事件?

1 个答案:

答案 0 :(得分:2)

我认为问题与alert()有关。

当警报框关闭时,焦点将集中在用户最后关注的控件上。这是我的观察。从patrick创建的http://jsfiddle.net/GQyHp/1/代码中删除警报,您会发现它可以正常运行。

因此,不使用内置警报,而是使用精美的盒子,例如可能是一个解决方案。