当您将鼠标悬停在“登录”链接上时,我会弹出一个登录表单。单击表单会导致登录表单隐藏。我的问题是,当我提交表单(通过提交按钮或按 Enter)时,用户名会从表单中消失。这只发生在 IE9 中(不确定以前版本的 IE)。它在 FF、Chrome、Safari 和 Opera 中运行良好。我还确认表单上的所有文本字段都丢失了内容,而密码字段在提交时保留了它们的值。
我难住了。任何帮助将不胜感激!
这是我的表单代码:
<fieldset id='signin_menu'>
<form name='headlogin' method='post' id='signin' action='/login'>
<label for='username'>Username</label>
<input type='text' name='username' size='13' maxlength='20'>
</p>
<p>
<label for='password'>Password</label>
<input type='password' name='password' size='13' maxlength='20'>
</p>
<p class='remember'>
<input type='submit' id='signin_submit' value='Sign in'>
<input type='checkbox' id='remember' name='keeplogin'>
<label for='remember'>Remember me</label>
</p>
<p class='forgot'> <a href='/forgot-password' id='resend_password_link'>Forgot your password?</a> </p>
<input type='hidden' name='submit' value='1' />
</form>
</fieldset>
这是我的javascript:
$(document).ready(function() {
$(".signin").mouseover(function(e) {
e.preventDefault();
$("fieldset#signin_menu").show();
$(".signin").toggleClass("menu-open");
});
$("fieldset#signin_menu").mouseup(function() {
return false
});
$(document).mouseup(function(e) {
if($(e.target).parent("a.signin").length==0) {
$(".signin").removeClass("menu-open");
$("fieldset#signin_menu").hide();
}
});
});