Проблема текстовой области FireFox в модальном диалоге - PullRequest
1 голос
/ 12 апреля 2011

У меня есть текстовая область в модальном диалоге пользовательского интерфейса jQuery. Я попытался изменить значение текстового поля следующим образом:

1) $('#textarea').val('test value');
2) $('#textarea').text('test value');

Оба они работают во всех браузерах. За исключением Firefox, он работает только ОДИН РАЗ.

При повторном вызове любого из них с новым значением значение textarea остается неизменным. Независимо от того, открыт ли модальный диалог или до его открытия (он открывается с помощью textarea id = "textarea" как части содержимого - поэтому, изменяя его значение перед открытием, СЛЕДУЕТ оставлять значение при открытии текстовое поле).

Как и предлагалось в другой теме, я попытался сделать

$('#textarea').css('display', 'block');

как до, так и после установки значения текстовой области.

Есть какие-нибудь подсказки?

Я не могу понять, почему эта проблема возникает только в FireFox - обычно все работает в Firefox, но не в других браузерах.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 28 июля 2011

Проблема не в установке значения, а в методе диалога ('open'), сбрасывающем эти значения textarea при каждом вызове. Кажется, это какая-то ошибка между диалоговым окном FF и jqueryUI, поскольку это начало происходить несколько месяцев назад, раньше работало нормально.

Решение простое, просто заполните значения текстовых полей после отображения диалогового окна, а не до.

0 голосов
/ 02 августа 2011

Я столкнулся с этой проблемой с Firefox 5.0.1 и jQuery UI 1.8.14

Я как-то взломал эту проблему, переместив вызов .dialog () в обработчик события click вместо создания диалогав процессе.Это означает, что каждый щелчок, чтобы открыть диалоговое окно, воссоздает весь диалог (я думаю), и это может быть тем, что решает проблему textarea.

Ваш пробег может варьироваться.

0 голосов
/ 25 апреля 2011

Поскольку он работает один раз, он не полностью сломан. Поскольку вы разрабатываете с Firefox, я предполагаю, что вы также используете Firebug. Вы должны попробовать простую отладку, написав

console.log($('#textarea'));

до и после того, как вы впервые попытались установить значение. Было бы интересно посмотреть, сможет ли jQuery выбрать его после первого набора времени.

...