Мне просто интересно, есть ли у кого-нибудь информация или отзывы о ситуации, в которой я нахожусь. В настоящее время я сталкиваюсь с проблемой "Double Form Submit", когда я один раз нажимаю кнопку "Отправить", и она отправляет форму дважды. Это происходит только в IE9, но я тестировал только Safari, Chrome (последний), FF (Ver 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 для отправки.
Я назвал поддержку Microsoft, и они утверждают, что это "проблема совместимости с Javascript", поэтому нам нужно будет точно настроить наш Javascript, чтобы наш сайт работал правильно в IE9.. (Duh!)
В любом случае, мой код:
onclick="this.disabled=true;document.forms[0].submit();"
уже не так? Потому что, несмотря на то, что другие браузеры не жалуются, но, вероятно, это не правильно, чтобы начать с?
Я надеюсь, что если кто-то также столкнется с подобными проблемами, у вас будет больше информации или отзывов. В настоящее время, если я не изменю X-UA-совместимый с IE = 8, я могу изменить свой код на:
onclick="this.disabled=true;"
Это также решит проблему с двойным отправкой, но есть ли также список проблем совместимости IE9, которые мы должны принять к сведению?
Спасибо!