使用jQuery隐藏表单但不希望在自动完成时隐藏它

时间:2010-11-06 18:36:03

标签: jquery forms autocomplete mouseleave

当鼠标移动具有#loginform_top id的表单时,我使用jQuery将表单设置为fadeOut。这工作正常但是当这个表单是一个登录框时,当firefox弹出这个表单中输入字段的自动完成detials时,将鼠标移动到自动完成的行为会隐藏我的表单。是否可以选择自动完成而不隐藏表单。谢谢你看这个。我正在使用以下代码:

  $('#loginform_top').hide(); 
  $('.loginToggle').mouseover(function() { 
    if(!$('#loginform_top:visible').length)
    {
      $('#loginform_top').fadeIn('fast'); 
    }
  });
  $('#loginform_top').mouseleave(function() { 
   $('#loginform_top').fadeOut('fast') 
  });

});

2 个答案:

答案 0 :(得分:0)

您可能希望尝试通过在其中添加<br />或设置其高度样式属性来使表单更大。这可能是因为鼠标在单击自动完成选项时离开表单(这是我认为您在上面描述的内容)。

我没有检查过,但您可以将其与onblur =“”结合使用,表示取消选中文本框时。然后,您的其他JavaScript代码可以引用在那里定义的变量。

答案 1 :(得分:0)

这更像是一个hack,但是如果你在mouseleave处理程序中启动setTimeout会延迟隐藏表单以使用户有机会处理自动完成,那该怎么办呢。

或者,如果他们选择不登录,而不是使用mouseleave,则可以提供“X”或其他东西让用户解雇表单。这假设登录是有效选项。