4

我有一个网站,我们使用 Javascript 提交登录表单。在 Firefox 上,它会提示用户在登录时记住他们的密码,但在 IE7 上却没有。

在做了一些研究之后,看起来只有当通过提交控件提交表单时,用户才会在 IE7 中得到提示。我创建了一些示例 html 来证明是这种情况。

<html>
<head>
<title>test autocomplete</title>
<script type="text/javascript">
function submitForm()
{
    return document.forms[0].submit();
}
</script>
</head>
<body>
<form method="GET" action="test_autocomplete.html">
<input type="text" id="username" name="username">
<br>
<input type="password" id="password" name="password"/>
<br>
<a href="javascript:submitForm();">Submit</a>
<br>
<input type="submit"/>
</form>
</body>
</html>

href 链接没有得到提示,但提交按钮会在 IE7 中。两者都在 Firefox 中工作。

我无法使用提交按钮使我的网站的样式看起来相同,有谁知道如何在通过 Javascript 提交时显示记住密码提示?

4

3 回答 3

5

为什么不尝试以这种方式挂钩表单提交?

<html>
    <head>
        <title>test autocomplete</title>
        <script type="text/javascript">
            function submitForm()
            {
                    return true;
            }
        </script>
    </head>
    <body>
        <form method="GET" action="test_autocomplete.html" onsubmit="return submitForm();">
            <input type="text" id="username" name="username">
            <br>
            <input type="password" id="password" name="password"/>
            <br>
            <a href="#" onclick="document.getElementById('FORMBUTTON').click();">Submit</a>
            <br>
            <input id="FORMBUTTON" type="submit"/>
        </form>
    </body>
</html>

这样,无论单击链接还是按下提交按钮(或按下回车键)都会调用您的函数,并且您可以通过返回 false 来取消提交。这可能会影响 IE7 解释表单提交的方式。

编辑:我建议始终以这种方式挂钩表单提交,而不是在表单对象上调用 submit()。如果你调用 submit() 那么它不会触发表单对象的 onsubmit。

于 2008-10-01T16:37:24.923 回答
1

您是否尝试在 href 中放入 url 并附加一个单击事件处理程序以提交表单并从单击处理程序返回 false 以便该 url 不会被导航到。

或者通过javascript触发隐藏的提交按钮?

于 2008-10-01T16:21:34.040 回答
1

您可以尝试使用 HTML <button> 标签而不是链接或提交按钮。

例如,

<button type="submit">Submit</button>

<button> 标签比标准的 <input type="submit"> 更容易设置样式。有一些跨浏览器的怪癖,但它们并非不可克服。

一篇关于 <button> 使用的非常棒的文章可以在particletree中找到:重新发现按钮元素

于 2008-10-01T19:31:50.993 回答