#javascript #submit
Есть форма form с inputaction, value которого пустая строка, есть кнопка add, по клику которой вызывается скрипт: function act2() { //получение формы form.action.value='add'; form.submit(); } Необходимо сбросить значение input на пустое. Навигация на ту же страницу - не вариант - вызывает ряд ненужных багов. Опытным путем был найдет вариант: function act2() { //получение формы form.action.value='add'; form.submit(); setTimeout( function(){form.action.value=''; form.submit();}, 100) } Однако появилось одно НО. В зависимости от сервера/количества данных в базе/фазы луны варьируется число, которое стоит под таймаутом, необходимое для того, чтобы функции в нем выполнились. Есть подозрение, что это все происходит из-за разного времени обработки сервером формы после submit. Есть какой-то вариант проверить, закончилась ли обработка формы сервером и только после этого вызвать функции, которые под таймаутом? Или же есть еще какой-то вариант сбросить значение этого input? UPD: Очистка формы должна быть, естественно, после ее первой отправки на сервер с заполненным action. Сервер Weblogic Какой и как "сервлет" отрабатывает - пока нет возможности отследить.
Ответы
Ответ 1
Необходимо сбросить значение input на пустое. Вызов form.submit(); уже отправил данные, что приведёт к переходу на другую страницу. Следовательно, ничего сбрасывать уже смысла нет. Форма отправлена, осуществлён переход на другую страницу post-запросом. При обновлении по F5 будет нужен такой же post-запрос, о чём и предупреждает браузер. Если нажать Да, то будет повторно послан последний запрос, независимо от того, что ты успеешь сделать с формой после её отправки. Ты пытаешься это покрыть повторной отправкой form.submit() после изменения, но это неправильно. Отлично, суть моего вопроса - как избежать повторной отправки, не используя навигацию на ту же страницу, на которой нахожусь, после первого сабмита Сделать с той страницы, на которую ты попал post'ом переход через get. Этого можно добиться ответом сервера 302 Found с редиректом на нужную страницу.
Комментариев нет:
Отправить комментарий