jEditable отправить на TAB, а также ENTER

Мои jEditables работают нормально, пока пользователь нажимает ENTER, чтобы оставить ввод. Однако если пользователь нажимает TAB, изменения не публикуются. Это правильное и задокументированное поведение.

Я бы хотел, чтобы TAB работал так же, как ENTER. Мне не нужно влиять на какие-либо другие jEditables, просто заставьте текущую активную публикацию обратно, как если бы был нажат ENTER.

Есть ли способ сделать это, кроме привязки обработчика keydown к элементам управления jEditable?

Если мне нужно предоставить обработчик keydown, есть ли способ программно указать элементу управления jEditable опубликовать себя, не извлекая идентификатор и значение из элемента управления?


person Larry Lustig    schedule 21.10.2011    source источник


Ответы (1)


Вы можете связать событие click после .editable(), чтобы оно срабатывало после события jEditable, которое устанавливало форму. Затем привяжите событие keydown к текстовому полю, которое слушает клавишу TAB. Итак, если вы имеете дело с текстовым полем, вы можете сделать что-то вроде следующего:

$('.editable').editable('url', {
    ...
}).click(function(evt) {
    $(this).find('input').keydown(function(event) {
        if (event.which == 9) //'TAB'
            $(this).closest('form').submit();
    });
});

Посмотрите это в действии: http://jsfiddle.net/william/6VUHh/5/.

person William Niu    schedule 21.10.2011
comment
Спасибо. Я реализую это, если у клиента возникнут проблемы с функцией ENTER. - person Larry Lustig; 22.10.2011