текстовое поле должно вызывать событие нажатия кнопки - PullRequest
0 голосов
/ 12 июля 2010

У меня есть текстовое поле и кнопка, событие нажатия кнопки перемещается в другое место на веб-сайте. Я хочу сделать то же самое при нажатии клавиши ввода, но не могу этого сделать, пожалуйста, помогите мне решить эту проблему, мой фрагмент кода следует

function call() 
{
    document.location= "location.aspx";
} 

<input type="text" id="txt1" onkeydown ="if(event.keyCode==13)document.getElementById('bt1').click()"/>
<input type="button"  id="bt1" value ="Hit me" onclick ="call()" />

Ответы [ 2 ]

0 голосов
/ 12 июля 2010

Если вы можете редактировать свой HTML-код, вам, вероятно, не понадобится делать какие-либо JS, чтобы заставить это работать.Поля INPUT в вашем HTML должны быть заключены в тег FORM (по крайней мере, так в большинстве случаев это имеет смысл с точки зрения семантики).

Если вы можете сделать это, вы можетеизмените элемент INPUT с кнопки TYPE на Type SUBMIT и затем сможете прослушивать событие onsubmit для элемента FORM.

Событие вызывается при нажатии клавиши Enterключ и нажатие кнопки, и это работает довольно гладко во всех браузерах.Единственная проблема - это IE, который не запускает событие onsubmit в форме с одним полем ввода текста.Для этого вам нужно будет вставить другое поле в форму.Вы можете скрыть это для вашего случая.Дополнительная ссылка на: http://style -vs-substance.com / development / form-submit-by-enter-key-and-internet-explorer /

РЕДАКТИРОВАТЬ: Пример кода

<form id="myForm">
    <!--[if IE]>
    <input type="text" style="display: none;" disabled="disabled" size="1" /><![endif]-->
    <input type="text"/>
    <input type="submit" value="Search"/>
</form>

Тогда в вашем JS:

var formHandler = document.getElementById('myForm');
formHandler.onsubmit = function(){
  //this callback will be invoked both by the search button and enter key now
  //your logic here
}
0 голосов
/ 12 июля 2010

Это то же самое, что и щелчок, оба вызовут эту функцию ...

onkeydown ="if(event.keyCode==13) call()"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...