JQuery динамически генерируется текстовое поле не ведет себя правильно - PullRequest
0 голосов
/ 21 октября 2010

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

var title = item.find('.co_edit_title').html("<input type='text' style='width:240px' name='title' value='" + item.find('.co_edit_title').text() + "' />");

Работает нормально, появляется поле ввода с указанным значением. Проблема в том, что в FF, Chrome и Safari текстовое поле ведет себя не так, как обычно. Клавиша возврата работает нормально, но обычная клавиатура не работает.

Например, стрелка SHIFT + не выделяет символы, а клавиши со стрелками влево и вправо не перемещают курсор влево и вправо. Клавиши вверх и вниз по какой-то причине перемещают курсор влево и вправо. Наконец, в IE есть те же проблемы, кроме того, что клавиша backspace действует так, как будто ее нет в текстовом поле, и это заставляет браузер вернуться на страницу.

Есть мысли о том, почему это происходит?

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

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Я попытался просто добавить текстовое поле в div, и текстовое поле работает нормально, как и должно.Убедитесь сами здесь: http://jsbin.com/inapo4. Может быть, что-то с item.find () не работает?«Элемент» - это просто объект jQuery, верно?

0 голосов
/ 21 октября 2010

Нашел проблему, это было с самой Fancybox. Навигация по стрелке испорчена из-за прослушивателя событий. Предполагается исправить в 1.3.2.

Источник

...