#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 с редиректом на нужную страницу.
Комментариев нет:
Отправить комментарий