2016-03-20 4 views
-1

Я очень старался найти решение моей проблемы, но результат поиска отображает так много дополнительного кода (PHP, divs и т. Д.).Javascript HMTL, событие onclick отправляется при нажатии кнопки, но не при нажатии клавиши на клавиатуре?

Я использую только HTML и JavaScript.

У меня есть одна форма

<form id="form1"> 
<input name="name" type="text" size="20"> 
</form> 

И одна кнопка

<button onclick="outputname()" type="submit">Search</button> 

Так идея пользователь вводит номер на форму и нажимает на кнопку поиска и выполняется действие (это работает Великий).

Однако, если пользователь вводит номер и нажимает кнопку Enter на клавиатуре, страница обновляется. То же самое происходит и с iPad. (Вместо «Go» отображается «Return»).

Поэтому я хочу, чтобы кнопка ввода работала на клавиатуре и переходила на работу в iOS.

Идея состоит в том, что пользователь вводит номер клиента и отображаются соответствующие данные.

+1

Считаете ли вы использование HTML-кода, предназначенного для кнопки отправки (''), и затем иметь событие onsubmit в форме? – dovetalk

+0

Это может вас заинтересовать: http://stackoverflow.com/questions/2314401/what-is-the-default-form-http-method – gibberish

+0

dovetalk i changed type = "text" to type = "submit". Вместо того, чтобы пользователь мог ввести текст/число в форму, форма превратилась в кнопку «отправить запрос» LMAO. Я собираюсь отказаться от этого – Abdul

ответ

2

Дайте идентификатор как ваше поле ввода и кнопку, чтобы убедиться, что вы ловушка правильные один:

HTML:

<form action="destination.html" method="post"> 
    <input id="foo" name="name" type="text" size="20"> 
    <button id="mybutt" onclick="outputname()" type="submit">Search</button> 
</form> 

Обратите внимание, что destination.html где вы хотите, чтобы данные, размещенный в , Если вы хотите, чтобы он был отправлен в тот же файл, просто используйте: action="" или оставьте это.

Javascript:

document.getElementById('foo').onkeypress = function(e){ 
    if (!e) e = window.event; 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == '13'){ 
     var btn = document.getElementById('mybutt'); 
     mybutt.click(); 
     return false; 
    } 
} 

Источники:

How to detect when the user presses Enter in an input field

Capturing the Enter key to cause a button click with javascript

+0

. Я сделал это, оставив action = "" пустым. Форма есть, кнопка есть.Но абсолютно ничего не происходит. Думаю, мы можем быть близки. Может быть, синтаксическая ошибка. – Abdul

0

Вставьте это: action="post" Внутри вашего тега формы. Т.е., если форма тег должен быть таким образом <form id="form1" action="post">

+0

Клянусь богом, я пробовал все предлагаемые до сих пор, тот, который подходит ближе всего, отвечает statosdotcom. Я добавил action = "post" в свой код, но когда я нажимаю кнопку ввода, появляется сообщение ERROR "File not found"/post? Name = 702536649 <--- thats число, которое я вставил. Гиббериш также упомянул action = "post" среди прочего. Я буду продолжать пытаться и редактировать. – Abdul

+0

Тогда я думаю, что ваша первая проблема окончена; ваша форма действительно отправляется. Если вы обнаружите, что «файл не найден», это означает, что вы столкнулись с другой проблемой, которая, вероятно, связана с тем, как вы имеете дело с опубликованными данными. Покажите свое имя функции javascript, чтобы мы могли посмотреть. – statosdotcom

+0

Абдул, пожалуйста, проверьте, правильно ли ответ был тем, который вы искали. Если вы прочитаете спецификацию HTML, вы обнаружите, что для того, чтобы получить форму, представленную нажатием клавиши ENTER, вам нужно будет поместить 'action = post' внутри тега' form', как я и предложил. Как я уже говорил, если вы находите «файл не найден», это доказательство того, что форма была отправлена ​​(но для неправильной или не заданной судьбы). Я буду плюс 1 вы после этого. Спасибо, и сожалею, что беспокою вас. Я удалю этот комментарий сразу после вас. – statosdotcom

1

В этом случае, вы могли бы управлять submit событие, вместо key/click событий.

<form id="form1" onsubmit="outputname()"> 

Представление события, спровоцированные либо щелчком или нажатием ввести позвонит outputname.

+0

У вас есть хорошая точка – gibberish

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