Настройка текста поля ввода Jquery Mobile - PullRequest
6 голосов
/ 23 августа 2011

У меня проблемы с настройкой отображаемого текста для мобильного ввода текста jQuery. Ниже мой код

$('#editPartyName').textinput();
$('#editPartyName').val(party.name);

Поведение действительно странное, когда модальное изображение отображается в первый раз, текстовое поле ввода находится в модальном режиме (плагин jquery mobile для простого диалога), текст в поле ввода модального интерфейса просто отлично. Однако при втором отображении модального окна визуальный текст на входе исчезнет. Когда я проверяю значение элемента, хотя, alert ($ ('# editPartyName) .val ()); Значение есть и является правильным. Текст просто не будет отображаться в элементе. Я использую JQM Beta 1. Я также попытался вставить $ ('# editPartyName'). Textinput () после объявления val ().

У кого-нибудь есть предложения? Благодарю вас!

Ответы [ 2 ]

12 голосов
/ 11 июня 2012

Я тоже столкнулся с этим. Мне удалось установить значение ввода текста с помощью $('#some_id').val('foobar'), а затем распечатать значение на консоль с помощью console.info($('#some_id').val());, но в браузере ввод текста был пустым.

Поработав некоторое время, я понял, что $('input[id=some_id]').val('foobar') работает как положено. Так что, очевидно, есть какая-то странная ошибка с jQuery, ссылающаяся на элемент по ID.

3 голосов
/ 23 августа 2011

Для создания стиля ввода текста jQuery Mobile вы используете .textinput() и для обновления вида существующего ввода текста jQuery Mobile вы используете .textinput("refresh").Поэтому при последующих вызовах вам нужно использовать метод .textinput("refresh"), а при вводе текста без инициализации вам необходимо использовать .textinput().

Что-то вроде:

$('#editPartyName').val(party.name).textinput('refresh');

Мой опытс выбранными входами, но я считаю, что это то же самое для ввода текста, вот что я делаю для выбора для обновления представления:

$("select#foo").selectmenu("refresh");

Этот пример из документов: http://jquerymobile.com/demos/1.0b1/docs/forms/forms-selects.html (нижняя частьстраницы)

Обновление

Вам не нужно ничего делать, кроме как изменить значение элемента ввода:

$('#editPartyName').val(party.name)

Вот демонстрацияиспользование jQuery Mobile 1.1.0: http://jsfiddle.net/VbAKL/

А вот демонстрация с использованием jQuery Mobile 1.0B1: http://jsfiddle.net/VbAKL/1/

Существует высокая вероятность того, что эта проблема возникла из-за того, что вы выбираетепо идентификатору, и может быть несколько экземпляров идентификатора в DOM одновременно.Сайты jQuery Mobile могут иметь несколько «псевдостраниц» в DOM одновременно, и если у вас есть элемент на каждой странице с идентификатором #header, то при попытке запустить выделение для #header только для первого экземплярабудет возвращен.Так что ваш $('...').val(...) вызов функции может работать, но не на нужном элементе.

Краткий ответ: убедитесь, что ваши идентификаторы уникальны для всех страниц вашего сайта при использовании jQuery Mobile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...