1

当您将鼠标悬停在“登录”链接上时,我会弹出一个登录表单。单击表单会导致登录表单隐藏。我的问题是,当我提交表单(通过提交按钮或按 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();
        }
    });

});
4

0 回答 0