JavaScript – форма OnSubmit работает, а действие – нет.

StackOverflow https://stackoverflow.com/questions/989534

Вопрос

На моем 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-страницы в браузер.Страница, возвращаемая в браузер, может быть чем угодно: от сообщения «Спасибо за регистрацию» до списка результатов поиска, созданного на основе запроса к базе данных.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top