jQuery и ASP.NET - принудительное нажатие кнопки - PullRequest
4 голосов
/ 30 января 2009

У меня есть страница ASP.NET, на которой есть форма. Там также есть форма поиска. Поиск находится в верхнем правом углу страницы, поэтому кнопка поиска является первой, добавленной в иерархию элементов управления.

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

Я пытался использовать jQuery так:

$('#textBoxId').keyup(function(e) {
  if(e.keyCode === 13) { 
    $('#buttonId').click();
    e.preventDefault();
  }
});

Но отправленная форма означает, что проверка на стороне клиента не выполнялась (т. Е. На кнопке не запускался обработчик события onclick).

Какой лучший способ добиться этого?

Ответы [ 2 ]

8 голосов
/ 30 января 2009

Попробуйте вместо этого.

$('#textBoxId').keydown(function(e) {
  if(e.keyCode === 13) {
    e.preventDefault(); 
    $('#buttonId').trigger('click');
  }
});
1 голос
/ 18 января 2010

Этот код работает в IE и FF:

$('#textBoxId').keydown(function(event) {
    var e = event || window.event;
    var keyCode = document.all ? e.keyCode : e.which;

    if (keyCode == 13) {
        e.preventDefault();
        $('#buttonId')[0].click();
    }
});

Важно помнить, что вызов jQuery для click () вызывает только те обработчики, которые связаны с событием click. Он не вызывает базовый html-метод click (). Это должно быть сделано вручную путем извлечения элементов из массива jQuery в соответствии с последней строкой в ​​операторе if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...