2010-08-16 2 views
5

У меня есть страница типа AJAX-y. Когда пользователь нажимает «GO», мне нужно выполнить определенную функцию javascript. Пожалуйста, обратите внимание, что я не хочу «отправлять» страницу. Причина в том, что я делаю все с помощью JavaScript.Обработка клавиши «Enter»/«Return» в Chrome

Чтобы справиться с «Enter»/«Возвращение» нажмите клавишу в IE и FireFox, я использую следующий код:

$(document).ready(function() { 
    $('#root').keypress(function(e) { 
    if (e.keyCode == '13') { 
     goButton(); 
    } 
    }); 
}); 

к сожалению, этот код не работает в Chrome функция goButton() вызывается.. Проблема заключается в том, что страница отправляется. Что я делаю неправильно?

ответ

6

Предполагая, что у вас есть форма:

$('#theForm').submit(function(e){ 
    e.preventDefault(); 
    goButton(); 
    return false; // just to be sure. 
}); 

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

3

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

$(document).ready(function() { 
    $('#root').keypress(function(e) { 
    if (e.keyCode == '13') { 
     e.preventDefault();//Stops the default action for the key pressed 
     goButton(); 
     return false;//extra caution, may not be necessary 
    } 
    }); 
}); 
Смежные вопросы