通过javascript提交时,IE7表单不会提示记住密码
-
03-07-2019 - |
题
我有一个网站,我们使用Javascript提交登录表单。在Firefox上,它会提示用户在登录时记住他们的密码,但在IE7上则没有。
在进行一些研究后,看起来只有在通过Submit控件提交表单时才会在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提交时显示记住密码提示?
解决方案
为什么不尝试以这种方式挂钩表单?
<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。
其他提示
您是否尝试在href中添加url并附加click事件处理程序以提交表单并从Click处理程序返回false,以便该url无法导航到。
或者通过javascript触发隐藏的提交按钮?
您可以尝试使用HTML <!> lt; button <!> gt;标记而不是链接或提交按钮。
例如,
<button type="submit">Submit</button>
<!> lt; button <!> gt;标签比标准<!> lt; input type = <!> quot; submit <!> quot; <!> gt;更容易风格化。有一些跨浏览器的怪癖,但它们并非不可克服。
关于使用<!> lt; button <!> gt的一篇非常棒的文章;可以在粒子上找到:重新发现按钮元素
不隶属于 StackOverflow