Вопрос № 103476: Здравствуйте эксперты!
В приложении есть форма, при нажатии на кнопку (button) данные получает функция на Javascript, но если в поле text стоит курсор и в это время нажать enter то данные идут на сервер минуя обработчик - как от этого избавиться?...
Вопрос № 103.476
Здравствуйте эксперты!
В приложении есть форма, при нажатии на кнопку (button) данные получает функция на Javascript, но если в поле text стоит курсор и в это время нажать enter то данные идут на сервер минуя обработчик - как от этого избавиться??
Приложение:
Отправлен: 26.09.2007, 18:21
Вопрос задал: Cimus (статус: Студент)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Бородин Александр Олегович
Здравствуйте, Cimus!
Можно атрибуту action присвоить значение "#", но для Вашей формы, думаю, лучше было бы, если бы Вы для поля text написали обработчик событий onKeyDown, например, а в нем - Вашу функцию doLoad(this.value).
Я к такому выводу прихожу исключительно исходя из вида Вашей формы. Если Вы ее привели не полностью, то мой ответ, наверное, Вам не поможет.
--------- Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Бородин Александр Олегович (статус: 10-ый класс)
Ответ отправлен: 26.09.2007, 18:34 Оценка за ответ: 3 Комментарий оценки: Обработчик событий onKeyDown в поле TYPE="text" стаить нельзя, как же тогда текст вводить??
Отвечает: Flynn
Здравствуйте, Cimus!
<FORM action="" method="post" onSubmit="doLoad(this.form.ip.value);">
Данная структура всегда перед отправкой формы проведет вашу функцию. Введя её скрипт в кнопке можно убрать (оставив обычный submit) - так как выполнит функцию два раза - при нажатии кнопки, а потом субмите формы. Но тсоит так же быть внимательным к значениям возвращаемым функцией doLoad. Если она НЕ возвращает false - форма отправится на сервер. То есть если произошла ошибка какая-то и данные отправляться не должны функция должна возвращаться return false.
Ответ отправил: Flynn (статус: 6-ой класс)
Ответ отправлен: 26.09.2007, 19:41 Оценка за ответ: 5 Комментарий оценки: Ваш вариант не сработал, но поразмыслив получись вот так -FORM name="check_ip" onsubmit=" doLoad(document.check_ip.ip.value); return false"- Спасибо за правильный ответ