2010-10-01 2 views
2

Моя форма HTML автоматически очищается после нажатия кнопки отправки. Любая идея, как остановить это?HTML Form onSubmit()

Вот открывающий тег для формы:

<form onsubmit="return math()"> 
+5

Просьба показать всю форму. Я не вижу кода. – Marcus

ответ

2

Если math() возвращает false, ваши данные не исчезнут, но также не будут отправлены данные на сервер. Если вы хотите отправить данные на сервер, вы можете сделать XMLHttpRequest.

+0

Существует одна ошибка с onsubmit - если входящая функция вызывает ошибку, отправьте ее! –

3

при нажатии кнопки отправить страница обновляется. Вероятно, вам нужно будет вернуть страницу со значением форм, установленным для того, что было, когда оно было отправлено.

4

Одним из популярных подходов является использование серверного языка, такого как PHP, который считывает все значения get и воссоздает HTML-страницу страницы с использованием шаблона и заменяет переменные.

<input type = "text" name = "Textbox1" id = "Textbox1" value = "{$_GET[Textbox1]}"/> 

Я написал его как $ _GET непосредственно, но вы действительно хотите, чтобы убедиться, что значение было извлечено, так что вы не получите произвольный инъекции HTML.

Чуть более сложным вы можете подойти к этой чисто клиентской стороне и использовать javascript для parse the address bar и извлечь значения, представленные на вашу страницу (при условии, что он не был отправлен с POST в качестве метода). Затем вы можете динамически повторно заполнять клиентскую сторону полей.

+1

Не очищайте, HTML-escape на выходном каскаде. 'value =" "'. – bobince

+0

Пример, который я привел, должен был служить иллюстрацией простого случая, и поэтому я сначала выбрал первую часть безопасности. Вышеупомянутый код может быть частью системы шаблонов или чего-то еще. В идеале у вас будет настраиваемая функция «SafeHtmlValueOutput()» или что-то подобное, и вы будете использовать это в каждом случае (избегая функции htmlspecialchars, потому что вам может потребоваться изменить функцию для удаления разрывов строк или другого интересного ввода, что выбранная вами функция не поддерживает.) Но хороший момент! +1 к вам, сэр. – M2tM

Смежные вопросы