как изменить надпись на бутоне в диалоге после инициализации

Обсуждаются вопросы по надстройке jQuery UI - официальные виджеты и плагины для организации взаимодействия с элементами интерфейса.

Модераторы: EGORR, Gennady

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение Gennady » 11 фев 2010, 17:18

Все довольно просто. Если воспользуетесь firebug'ом, то сможете увидеть разметку, которая создается при инициализации виджета Dialog. div.ui-dialog-buttonpane - это обычный div, куда помещаются кнопки, в нем ищем кнопку (button), которая содержит текст 'Cancel' (:contains('Cancel')) и затем заменяем в ней текст с помощью метода text().
Просто для этого всего надо немного изучить API jQuery ;)
Долог путь поучения, короток и успешен путь примеров (Сенека).
I'm a member of jQuery Meetups. jQuery users unite! Connect with other jQuery users... Присоединиться к jQuery Russia.
Аватар пользователя
Gennady
Администратор
 
Сообщений: 1886
Зарегистрирован: 14 янв 2010, 14:36
Откуда: Москва

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение TRAHOMOTO » 12 фев 2010, 01:00

Seven писал(а):вот только одно но.... понять бы именно эту самую строчку....

Очень просто!
$("div.ui-dialog-buttonpane button:contains('Cancel')").text('Заменено');
В диве с классом class="ui-dialog-buttonpane" найти элемент button содержащий текст "Cansel" и встарить в него текст 'Заменено'
Предполагается наличие объекта
Аватар пользователя
TRAHOMOTO
Модератор
 
Сообщений: 513
Зарегистрирован: 19 янв 2010, 17:18
Откуда: Украина, Луганск

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение Seven » 12 фев 2010, 07:10

TRAHOMOTO писал(а):Очень просто!
$("div.ui-dialog-buttonpane button:contains('Cancel')").text('Заменено');
В диве с классом class="ui-dialog-buttonpane" найти элемент button содержащий текст "Cansel" и встарить в него текст 'Заменено'

Реально просто... так разжувал что аж стыдно... спасиб...
вот только одно но:
добавляли просто кнопки:
Код: выделить все
        buttons: {
           "Применить": function() {
                   ...

а ищем ui-dialog-buttonpane.
вот как догадаться об этом изменении?? или это уже чисто из опыта будет известно?
Seven
 
Сообщений: 8
Зарегистрирован: 10 фев 2010, 10:38

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение Gennady » 12 фев 2010, 10:35

Наверное из опыта... Просто каждый виджет из UI jQuery при инициализации создает "на лету" какую-то свою разметку. Весь вопрос только в том, чтобы "подсмотреть" (ну или в документации почитать) какие элементы разметки добавляются, с какими именами классов и т.п., а затем цинично :D этим воспользоваться.
Долог путь поучения, короток и успешен путь примеров (Сенека).
I'm a member of jQuery Meetups. jQuery users unite! Connect with other jQuery users... Присоединиться к jQuery Russia.
Аватар пользователя
Gennady
Администратор
 
Сообщений: 1886
Зарегистрирован: 14 янв 2010, 14:36
Откуда: Москва

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение TRAHOMOTO » 12 фев 2010, 11:03

Seven писал(а):Реально просто... так разжувал что аж стыдно... спасиб...

Стыдиться следует невежества, а не желания познать. Если бы мне в свое время так помогали...
Seven писал(а):вот как догадаться об этом изменении?? или это уже чисто из опыта будет известно?

В таких случаях очень выручает FireBug? обязательно попробуйте!
Предполагается наличие объекта
Аватар пользователя
TRAHOMOTO
Модератор
 
Сообщений: 513
Зарегистрирован: 19 янв 2010, 17:18
Откуда: Украина, Луганск

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение Oleg2012 » 24 сен 2012, 08:14

А почему при изменении текста кнопки предложенным методом, изменяется и высота кнопки? Как этого избежать? Если даже задать высоту после изменения размера, она все равно в опере будет одной, а в ФФ другой.
Oleg2012
 
Сообщений: 1
Зарегистрирован: 21 сен 2012, 12:22

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение XelaNimed » 25 сен 2012, 00:03

Здравствуйте.
Проанализируйте HTML-разметку до и после изменения. Вполне может статься, что добавляется пробельные символы или переводы строк.
Также обратите внимание на CSS-стили до и после. В некоторых случаях стили могут отличаться от первоначальных.
Попробуйте использовать вместо text() использовать html(). В этом случае придется подправить немного код.

P.S.: в любом случае Вы должны использовать отладчик кода. Благо их много: Firebug или встроенный в FF, Google Chrome Developer tools, Opera Dragonfly. Сейчас по-моему только IE не имеет адекватного отладчика.
Один из способов получить правильные ответы — предложить несколько неправильных самому.
Аватар пользователя
XelaNimed
Модератор
 
Сообщений: 229
Зарегистрирован: 25 ноя 2010, 06:52

Re: как изменить надпись на бутоне в диалоге после инициализации

Сообщение nevai » 18 янв 2013, 23:01

Выбираем див с идентификатором диалог в нем отбираем елемент буттон и заменяем в нем текст.

Вот и все просто. Если установлена и подключена jquery библиотека.
nevai
 
Сообщений: 5
Зарегистрирован: 18 янв 2013, 12:51
Откуда: Луганск

Пред.

Вернуться в jQuery UI

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2