JavaScript – форма OnSubmit работает, а действие – нет.
-
13-09-2019 - |
Вопрос
На моем FORM
, по какой-то причине я могу получить входную переменную формы через onsubmit
но не используя action
.
Это работает:
<form onsubmit="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Это не работает(this.city.value
оказывается нулевым)
<form action="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Почему это так onsubmit
может получить this.city.value
но action
событие не может?
Решение
Тег действия формы ни на что не ссылается this
Вместо этого используйте абсолютное местоположение
action="javascript:myFnc(document.getElementById('city-field').value)"
Другие советы
Редактировать:Благодаря комментарию Кристофа ниже я осознал свою огромную оплошность.Вот окончательное решение с его предложением.
<form action="" onsubmit="myFunc(this.city.value); return false;">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Это должно сделать то, что вам нужно.Я прошу прощения за то, что не уделил вам полного внимания в своих предыдущих ответах.
HTML-формы используются для отправки данных обратно в скрипт на сервере для обработки данных.При отправке формы данные в полях формы передаются на сервер в виде пар имя-значение.Серверные сценарии, которые могут быть написаны на нескольких разных языках, используются для обработки входящих данных и возврата новой HTML-страницы в браузер.Страница, возвращаемая в браузер, может быть чем угодно: от сообщения «Спасибо за регистрацию» до списка результатов поиска, созданного на основе запроса к базе данных.
поскольку форма предназначена для отправки данных в другой файл на сервере.в действии мы можем только указать путь, по которому нам нужно отправить данные.поэтому вы не можете получить значения, которые имеет форма.