Я использую диалоговое окно jQuery UI для отправки формы ajax. Я хочу изменить текст моей кнопки сохранения , чтобы подождать, когда пользователь нажмет на нее и вернется к сохранению при завершении вызова ajax. pls help meДинамическое изменение диалогового окна диалогового окна jQuery Кнопка Текст
ответ
Используйте $().text('Please Wait')
, прежде чем вы выполните вызов AJAX, а затем добавьте $().text('Save')
в качестве последней операции в обратном вызове.
Обратите внимание, что для этого необходимо использовать button
элемент, а не input
элемент:
<button>Text here</button>
Я использую jQuery UI Dialog Buttons. Так что хотите изменить текст этой кнопки – saokat
И ваша проблема? –
Проблема заключается в том, что диалоговые кнопки jQuery не имеют идентификатора –
Вы должны будете использовать beforeSend
и complete
варианты соответственно. Проверьте документацию для получения дополнительной информации:
Предположив вы используете .dialog() с опцией кнопки, вы можете назначить пользовательский класс для кнопки отправки, а затем целевой внутренний текст кнопки с помощью класс, который присваивается пролет (Ui-кнопка-текст):
$("#dialog-test").dialog({
title: "My dialog",
buttons:
[
{
text: "Submit",
click: function() {
$(".my-custom-button-class > .ui-button-text").text("Please Wait...");
$("#some-form").submit();
},
'class': 'my-custom-button-class'
}
]
});
Когда экономия завершается с помощью передачи запроса(), вы можете использовать один и тот же вызов, чтобы установить текст обратно к тому, что вы хотите.
$(".ui-dialog-buttonpane button:contains('Save') span").text("Please wait...");
Если это поможет кому-: полная реализации с примером (PS: Я заимствовал getDialogButton() из другого поста на этом сайте, но не помню ссылку).
//-> Change to Loading Notice:
setButton('.settingsDialog', 'Save', 'Saving...', false);
setTimeout(function() { setButton('.settingsDialog', 'Saving...', 'Save', true); }, 800);},
//Select the Dialog Buttons
function getDialogButton(dialog_selector, button_name) {
var buttons = $(dialog_selector + ' .ui-dialog-buttonpane button');
for (var i = 0; i < buttons.length; ++i) {
var jButton = $(buttons[i]);
if (jButton.text() == button_name)
{
return jButton;
}
}
return null;
}
//Button Controller for AJAX Loading:
function setButton(sDialogClass, sButtonName, sNewButtonName, bEnabled){
var btn = getDialogButton(sDialogClass, sButtonName);
btn.find('.ui-button-text').html(sNewButtonName);
if (bEnabled) {
btn.removeAttr('disabled', 'true');
btn.removeClass('ui-state-disabled');
} else {
btn.attr('disabled', 'true');
btn.addClass('ui-state-disabled');
}
}
Этот бит: btn.find ('. Ui-button-text'). Html (sNewButtonName) сохранил мой бекон. Но чтобы получить кнопку, мне было легче получить идентификатор кнопки с помощью селектора (вы можете установить id: «myButtonID» в массиве, где вы устанавливаете кнопки, затем используйте обычный селектор $ («# myButtonId»). find ('. ui-button-text'). html («новый текст») – Gurnard
Совершенно. То, что я искал. Должно быть встроено в диалог jQueryUI. – dualmon
$("#dialog-test").dialog({
title: "My dialog",
buttons:
[
{
text: "Submit",
click: function() {
$(".my-custom-button-class > .ui-button-text").text("Please Wait...");
//You may use $(this) as selector or allso $("#dialog-test")
$(this).parent().children('.ui-dialog-buttonpane').children().children().html('Please wait..');
//As you have only one button, it should not matter to specify child element, but you can like this:
//$($(this).parent().children('.ui-dialog-buttonpane').children().children()[0]).html('Please wait..');
$("#some-form").submit();
},
'class': 'my-custom-button-class'
}
]
});
Хотя вопрос очень стара я нахожу ответ очень прост и не было дано здесь.
- Вы можете установить идентификатор кнопки и использовать ее.
- Все кнопки диалога - это пользовательские кнопки jQuery, поэтому вы можете использовать функцию
$().button()
, чтобы изменить кнопку.
Код JavaScript является:
$('#dialog').dialog({
buttons:[{
id: 'buttonId',
click: function() {
// your function
}]
});
$('#buttonId').button('option', 'label', 'Please wait...');
[См. также этот ответ] (http: // stackoverflow. com/questions/10312835/set-jquery-ui-dialog-button-id # 10312946) для более простого (не массив) синтаксиса. Отлично работает в сочетании с этим ответом. – gibberish
Note the correct way создать несколько кнопок на лету:
'buttons', [
{
text: "Download",
click: function() {...}
},
{
text: "Not now",
click: function() {...}
}
]
Ниже приведен пример использования стиля без массива: See this jsFiddle для примера ,
Для моей версии JQuery Ui (1.11.4), этот формат работал, чтобы изменить текст кнопки:
$('#setActionButton').button('option').text('new text');
Однако это не сбросить кнопку с новым текстом в диалоге! Это было неприятно. Ответ на вопрос JaredBroad - это тот, который работал на меня, сначала вытаскивая все кнопки из диалогового окна, а затем перебираясь, чтобы найти кнопку для переименования. Затем он менял текст каждый раз.
Я нахожу, что если я использую много диалогов с теми же кнопками, то могу определить класс каждой кнопке в каждом диалоговом окне, а затем изменить текст на всех кнопках.
$('#dialog1').dialog({
buttons:[{
class: "btnOK",
click: function() {
...
}
},
{
class: "btnClose",
click: function() {
...
}
}]
});
$('#dialog2').dialog({
buttons:[...]
});
$('.btnOK').button('option', 'label', 'Your text here');
$('.btnClose').button('option', 'label', 'Your text here');
Кроме того, вместо класса можно определить идентификатор для каждой кнопки (однако идентификатор должен быть уникальным)
- 1. Как предотвратить изменение диалогового окна JQuery UI диалогового окна?
- 2. Изменение положения окна диалогового окна jQuery
- 3. текстовый текст диалогового окна jQuery
- 4. Открытие диалогового окна jquery
- 5. Изменение ориентации диалогового окна
- 6. Изменение ориентации диалогового окна
- 7. андроид - кнопка подтверждения диалогового окна создания диалогового окна
- 8. Динамическое добавление окна или диалогового окна?
- 9. Запуск второго диалогового окна jQuery из начального диалогового окна jQuery
- 10. Закрытие диалогового окна jQuery
- 11. Параметрирование диалогового окна jQuery
- 12. Задача диалогового окна jQuery
- 13. JQuery производительность диалогового окна
- 14. преобразование диалогового окна jQuery
- 15. Позиционирование диалогового окна jQuery
- 16. Задача диалогового окна jquery
- 17. Обновление диалогового окна JQuery
- 18. Центрирование JQuery диалогового окна
- 19. Динамическое изменение размера диалогового окна javascript/jquery до размера изображения
- 20. Поиск способа возврата диалогового окна диалога диалогового окна JQuery
- 21. Получить данные из диалогового окна jquery при закрытии диалогового окна
- 22. Вызов диалогового окна JQuery UI из родительского диалогового окна
- 23. Как вернуть пользовательский ввод из диалогового окна диалогового окна jQuery
- 24. Неверное изменение диалогового окна Durandal
- 25. swing: изменение размера диалогового окна
- 26. Изменение ориентации диалогового окна Android
- 27. Изменение размера диалогового окна jQuery UI
- 28. анимированного изменение размеров диалогового окна JQuery щий
- 29. Навигация внутри диалогового окна jQuery
- 30. Удалить несохраненный текст из диалогового окна jquery
Если бы я мог выбрать лучший ответ на этот вопрос, было бы [это один из ManojRK] (http://stackoverflow.com/questions/4591642/dynamically-changing-jquery-ui-dialog-box-button-text#15863018). Молодцы, Маной. – gibberish