2010-06-28 2 views
3

Я хотел бы знать, как я могу инициировать функцию javacsript при нажатии клавиши ввода. Я пытаюсь создать функцию под названием handleEnter(event, fn).Как вызвать функцию js при нажатии клавиши ввода

Я хочу использовать функцию на поле ввода, например:

onkeypress="return handleEnter(event, update_field(this)); 
+0

Я думаю, что я решил. – Rapidz

ответ

6

Для вашей функции называется OnKeyPress, проверьте .keyCode или .which значение мероприятия, и посмотреть, если он равен 13.

function handleEnter(e, func){ 
    if (e.keyCode == 13 || e.which == 13) 
     //Enter was pressed, handle it here 
} 

IIRC, IE использует event.which, и Firefox будет использовать e.keyCode, чтобы узнать, какая клавиша была нажата.

+4

Я считаю, что код ключа 13 не 8? –

+0

Вы правы, 8 - это backspace. Исправлена. – Michal

+0

Вы не можете использовать 'function' как имя параметра или имя переменной в JavaScript. –

1

Я думаю, что решил.

На поле ввода я получил:

<input onkeypress="return handleEnter(event, update_field, this, 'task');" type="text" /> 

Для моей функции я получил:

function handleEnter(e, callback, obj, field){ 

    if(e){ 
     e = e 
    } else { 
     e = window.event 
    } 

    if(e.which){ 
    var keycode = e.which 
    } else { 
    var keycode = e.keyCode 
    } 


    if(keycode == 13) { 
     var tstid = $(obj).parent().find('input[type=hidden]').val(); 
     callback.apply(this, [field, $(obj).val(), tstid ]); 
    } 
} 

и это, кажется, работает хорошо сейчас.

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