Событие кнопки запуска при нажатии клавиши ввода на Mozilla Firefox - PullRequest
0 голосов
/ 07 января 2009
function CaptureKeys (e,btn) {
  var c //= document.layers ? evt.which: document.all ? event.keyCode : evt.keyCode 
  if(window.event) { 
    c = e.keyCode; // IE
  } else if(e.which) {
    c = e.which; // Netscape/Firefox/Opera
  }
      if (c == 13) {
        //return /enter key
        if (btn=="go") {
            if (document.getElementById("ctl00_ContentPlaceHolder1_btnGo")!=null) {
                document.getElementById("ctl00_ContentPlaceHolder1_btnGo").focus();
                return true;
            }
        } else {
            if (document.getElementById('ctl00_ContentPlaceHolder1_ImgFilter') != null) {
            //__doPostBack('ctl00_ContentPlaceHolder1_ImgFilter','');
            document.getElementById('ctl00_ContentPlaceHolder1_ImgFilter').focus();
            return true;
           }
       }
      return false;
     }
 }

Этот код работает на IE7, но не работает на Mozilla Firefox. Пожалуйста, помогите мне вызвать событие кнопки при нажатии Enter key.

Ответы [ 6 ]

1 голос
/ 21 мая 2016

Firefox предполагает, что если вы нажмете клавишу ввода в любом из текстовых полей, вы захотите отправить форму - даже если поля не являются частью формы и даже если кнопка не имеет типа «отправить».

Вы должны переопределить поведение Firefox по умолчанию с помощью protectDefault (). В свой селектор jQuery вставьте div, содержащий текстовые поля, которые вы хотите игнорировать клавишей ввода - в вашем случае, div «page». Вместо того, чтобы выделять весь div, вы также можете указать текстовые поля, которые вы хотите специально игнорировать.

$('#page').keypress(function(e) {
    if(e.which == 13) { // Checks for the enter key
        e.preventDefault(); // Stops IE from triggering the button to be clicked
    }
});
0 голосов
/ 15 декабря 2012

У вас есть опечатка.

window.event должно быть window.Event!

0 голосов
/ 26 марта 2012

Использование:

 __doPostBack('ctl00$ContentPlaceHolder1$btnGo',''); 

вместо:

document.getElementById("ctl00_ContentPlaceHolder1_btnGo").focus(); 
0 голосов
/ 08 июля 2009

Я не знаю, проверяет ли кто-нибудь эту ветку, но для дальнейшего использования.

У меня была такая же проблема в FF, и я получил ответ здесь:

http://www.webdeveloper.com/forum/showthread.php?t=108382

Удачи!

0 голосов
/ 07 января 2009

Вы также можете попробовать этот код:

theButton.click();
0 голосов
/ 07 января 2009

Вы можете просто добавить UseSubmitBehavior = "true" значение атрибута для вашей кнопки, которое должно быть запущено при Ввод клавиша.

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