我只是想知道是否有人对我所处的情况有一些信息或反馈。目前我面临一个“双重提交”问题,我点击一次“提交”按钮,然后提交了两次表格。这仅在 IE9 中发生,但我仅针对 Safari、Chrome(最新)、FF(版本 5/6)、IE8 和 IE9 进行了测试。
这是代码:
<!DOCTYPE html>
<html lang="en-us" dir="ltr">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>IE9 test</title>
</head>
<body>
<h1>Testing</h1>
<form method="POST" id="submit_form">
<input type="text" name="x" value="xxxx" />
<input type="text" name="y" value="yyyy" />
<button type="submit" class="btn_sign_in" id="btn_logon" onclick="this.disabled=true;document.forms[0].submit();">Submit</button>
</form>
</body>
</html>
有问题的部分是:
onclick="this.disabled=true;document.forms[0].submit();"
代码已经在我的网站上很久了,这是我今年IE9才发布以来第一次遇到双重提交问题,可能这几天使用IE9的人越来越多,因此我收到了用户关于这个问题的投诉.
最困难的部分是双重提交问题并不总是可重现的。有时会重复提交,有时会提交一次。
我目前的工作是改变:
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
并更改为:
<meta http-equiv="X-UA-Compatible" content="IE=8" >
这会强制 IE9 使用 IE8 兼容性,并且它将正确执行 Javascript 以进行提交。
我打电话给微软支持,他们声称这是一个“Javascript 兼容性问题”,所以我们需要微调我们的 Javascript 以使我们的网站在 IE9 下正常工作..(呃!)
无论如何,是我的代码:
onclick="this.disabled=true;document.forms[0].submit();"
一开始就错了吗?因为即使其他浏览器没有抱怨,但这可能是不正确的开始?
我希望如果有人也面临类似的问题有更多的信息或反馈。目前,如果我不将 X-UA-Compatible 更改为 IE=8,我可以将我的代码更改为:
onclick="this.disabled=true;"
这也将解决双重提交问题,但是否还有我们应该注意的 IE9 兼容性问题列表?
谢谢!