#html #forms #onclick
#HTML #формы #onclick
Вопрос:
Я хотел бы отправить форму и вернуться туда, откуда пришел пользователь, используя кнопку в HTML. Моя кнопка выглядит так:
<input type="submit" value="submit" onclick="history.back(-1)" />
Форма отправляется, но onclick не перенаправляется. Есть ли простой способ сделать это или мне нужно создать функцию JS или сделать что-то на стороне сервера?
Комментарии:
1. вы должны отправить данные с помощью ajax и выполнить history.back(-1).
2. вы можете использовать
<input type="submit" value="submit" onclick="window.location.href=history.back(-1)"/>
Ответ №1:
Вы должны обрабатывать отправку формы с помощью Ajax и, чтобы предотвратить поведение браузера по умолчанию, делать так:
<input type="submit" value="submit" onclick="handleSubmit()" />
function handleSubmit(e) {
//prevent default behavior of browser on submit form
e.preventDefault();
//do your job here
sendDataToExampleAPI();
//back to previous address in browser
window.history.back();
}
Комментарии:
1. Спасибо, Маджид! Я попробовал это сейчас: функция handleSubmit(e) { //предотвратить поведение браузера по умолчанию при отправке формы e.preventDefault(); // выполняйте свою работу здесь var form = document.getElementById(«form-id»); form.submit(); //вернуться к предыдущему адресу вwindow.history.back(); } Форма отправляется, но браузер по-прежнему не возвращается. В браузере есть ошибка, но она мигает так быстро, что я не могу ее прочитать…
2. @Muriel установите функцию handleSubmit для события onsubmit формы и повторите попытку
3. Ошибка заключается в том, что буква «e» не определена.
Ответ №2:
history.back(-1)
вместо этого вы должны использовать window.location.href=history.back(-1)
<input type="submit" onclick="window.location.href=history.back(-1)"/>
Вы должны использовать его.
Кроме того, не забудьте использовать e.preventDefault()
для предотвращения непредвиденного поведения при отправке формы.
Вам также может потребоваться отправить данные с помощью Ajax.
Комментарии:
1. Спасибо, Gucal, я попробовал это, но браузер остается с формой — форма все же отправляется…
2. Можете ли вы попробовать без использования -1.
window.location.href=history.back()
илиwindow.history.back()
3. Если он не отправляет подобную форму, вам следует вызвать
window.history.back()
функцию внутри функции отправки формы.4. Спасибо! Я попробую это в am и дам вам знать, как это происходит. Очень признателен за помощь 🙂
5. Я надеюсь, что это будет успешным. Удачи 🙂
Ответ №3:
history.back()
один только метод в HTML ничего не делает.
У вас должна быть функция в JS, которая вызывает history.back()
и передает эту функцию вашему onclick
в HTML. Кроме того, history.back()
метод не получает никаких аргументов. Он автоматически переходит на 1 шаг назад. В качестве альтернативы вы можете использовать history.go(-1)
.
Итак, что-то вроде этого:
<input type="submit" value="submit" onclick="goBack()" />
function goBack() {
history.back();
}
Кроме того, чтобы отправить форму, ваш <input>
должен быть внутри <form>
тега, например:
<form id="form">
<input type="submit">Submit form/>
</form>
Комментарии:
1. Итак, если я сделаю это: « <тип ввода =»кнопка» значение =»только для возврата» onclick =»history.back (-1)» /> « он возвращается (но не отправляет форму)
2. Ваш тип ввода должен быть «отправить», чтобы отправить форму.