Javascript / JQuery перейти к следующему полю при нажатии клавиши - PullRequest
0 голосов
/ 08 июля 2010

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

$("<textarea />").keyup(function (e) {
    switch (e.keyCode) {
        case 40: // down
          // if last line or alternatively
          // if keypress does not change index
          // do something.
          break;
    }
});

Возможно ли добиться этой функциональности?

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

EDIT : Кстати, я использую плагин jQuery FieldSelection , если это поможет.

Спасибо за чтение; обязан за любой вклад.

Brian

1 Ответ

1 голос
/ 08 июля 2010

Документация по плагину FieldSelection кажется недостаточной, но посмотрите на код в функции обновления на этой странице . Вы должны быть в состоянии понять, как определить, перемещается ли каретка; это не совсем то, что вы хотите, но это близко. Какова причина для этого?

РЕДАКТИРОВАТЬ: Я видел ваш комментарий к ответу Джонатана. В Chrome, по крайней мере, последняя стрелка вниз переместит каретку в конец текстовой области, которую вы сможете обнаружить, как указано выше. Однако имейте в виду, что ваши пользователи должны будут знать об этой «функции». Возможно, вы захотите сделать его более прозрачным, просто имея ссылку, позволяющую пользователям добавлять текстовые области.

...