Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   form + enter + function (https://javascript.ru/forum/css-html/8174-form-enter-function.html)

Basonsan 22.03.2010 09:48

Поставлю вопрос иначе. При нажатии энтер в форме тебя автоматически перебрасывает на, например,
http://javascript.ru?example=input.value

input.value это у нас то что написано в <INPUT type="text">
как сделать так, что бы она не переходила на эту страницу, а вообще игнорировала нажатие энтер в форме?

Basonsan 22.03.2010 10:01

все покорил наконец то надо было просто добавить после функции return false

<FORM name="myForm" onSubmit="poisk(example); return false">

Basonsan 26.03.2010 23:02

возник другой вопрос я добавил еще один <INPUT type="text"> и у меня перестала запускаться функция по нажатию на энтер...
Или функция может срабатывать только когда в форме один инпут?

ixth 27.03.2010 13:24

Эээ, чувак. Щас объясню что именно ты делаешь не совсем так.
Итак, у нас тут форма поиска по тэгам аниме-сайта. js делает что-то страшное с тем, что вводит пользователь (кажется, ищет дубли тэгов или что-то в этом роде). Затем ты делаешь перенаправление при помощи location.href. Это не очень правильно. Почему? Да, потому что форма сама это может. Если ты хочешь, чтобы форма переходила по ссылке http://javascript.ru/?example=input.value, тебе надо сделать как-то так:

<form action="http://javascript.ru/" method="get" onsubmit="prepareForm(this)">
     <!-- value подставлен для наглядности -->
     <input type="text" name="example" value="input.value" />
     <input type="submit" value="Поиск"/>
</form>


Вооот. Таким образом перед отправкой формы у тебя будет срабатывать ф-ция prepareForm, которая будет как-то изменять поля формы. Это раз.

Два. Почему форма не шлется по энтеру? Все очень просто: у тебя нет кнопки submit. Без нее форма по энтеру шлется только если в ней одно текстовое поле. Добавь кнопку. Можно даже спрятать ее при помощи display: none; Все должно будет работать.


Часовой пояс GMT +3, время: 23:24.