Отключение кнопки отправки отменяет отправку формы - PullRequest
3 голосов
/ 03 августа 2010

У меня есть такая форма:

<form action="lol.php" method="POST">
<input type="text" name="fe" />
<input type="submit" id="submitbtn" value="submit" onclick="this.disabled = true;" />
</form>

и в Firefox он работает отлично, но в Internet Explorer (последняя версия) кнопка отключается, а форма не отправляется. Я также попробовал:

<form action="lol.php" method="POST" onsubmit="document.getElementById('submitbtn').disabled = true">

и удалил код onclick из кнопки отправки, но это имело тот же эффект. Какой код следует использовать, чтобы он работал во всех браузерах?

Ответы [ 5 ]

5 голосов
/ 03 августа 2010

Хорошо, значит, хороший взлом - подготовить вторую фальшивую кнопку, которая ничего не делает:

<form action="lol.php" method="POST">
<input type="text" name="fe" />
<input type="button" id="submitbtnDisabled" disabled="disabled" value="submit" style="display:none;" />
<input type="submit" id="submitbtn" value="submit" onclick="this.style.display='none'; document.getElementById('submitbtnDisabled').style.display='inline';" />
</form>

Примечание:

Поскольку вы сказали, что не используете jQuery, я использую стандартныйJavaScript.Единственное предложение - использовать ненавязчивый JavaScript и переместить встроенный CSS в таблицу стилей, чтобы отделить скрипты и стили от HTML.

1 голос
/ 03 августа 2010

попробуйте это:

onclick="this.disabled=true;return true;"

В противном случае MS Exploder не позволит кнопке продолжить обработку после отключения.(Это сука, потому что я использую это, и это работает в FireFox)

1 голос
/ 03 августа 2010

Я столкнулся с этой проблемой и раньше.Я закончил тем, что скрыл кнопку отправки, когда форма была отправлена, и заменил ее отключенной кнопкой с тем же текстом.Работал отлично.

0 голосов
/ 03 августа 2010

Это странно.

Попытка:

<input type="submit" id="submitbtn" value="submit" onclick="setTimeout(function () { this.disabled = true;}, 0)" />
0 голосов
/ 03 августа 2010

Если вы хотите, вы можете использовать jquery.

Попробуйте это:

$('#submtbtn').submit(function() {
   $(this).attr('disabled', 'disabled');
});

Я думаю, что это работает на всех браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...