Używam okna dialogowego jQuery UI do przesyłania formularza ajax. Chcę zmienić tekst przycisku zapisu , aby czekać, gdy użytkownik kliknie na nim iz powrotem do Zapisz po zakończeniu wywołania ajax. pls Pomóż miDynamiczne zmienianie okna dialogowego interfejsu jQuery Przycisk Tekst
Odpowiedz
Użyj $().text('Please Wait')
przed wykonaniem połączenia AJAX, a następnie dodaj $().text('Save')
jako ostatnią operację w powrocie połączenia.
Należy pamiętać, że do tego, należy użyć elementu button
, a nie elementem input
:
<button>Text here</button>
Używam przycisków dialogowych jQuery UI. Więc chcesz zmienić tekst tych przycisków. – saokat
A twój problem? –
Problem polega na tym, że przyciski dialogowe jQuery nie mają identyfikatora –
Będziesz musiał użyć beforeSend
i complete
opcje odpowiednio. Sprawdź docs o więcej informacji:
Zakładając, że używasz .dialog() z opcją przycisków można przypisać klasę niestandardową do przycisku Prześlij, a następnie kierować się wewnętrzną tekstu za pomocą przycisku klasa, który jest przypisany do rozpiętości (UI-button-text):
$("#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'
}
]
});
Gdy Zapisz uzupełnia poprzez submit(), można użyć tego samego połączenia, aby ustawić tekst z powrotem do tego, co chcesz.
$(".ui-dialog-buttonpane button:contains('Save') span").text("Please wait...");
Jeśli to pomoże ktoś: pełne wdrożenie z przykładu (PS: Pożyczyłem getDialogButton() z innym poście na tej stronie, ale nie pamiętam linku).
//-> 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');
}
}
ten bit: btn.find (".ui-button-text"). Html (sNewButtonName) zapisał mój boczek. Ale aby uzyskać przycisk, łatwiej było uzyskać identyfikator przycisku za pomocą selektora (możesz ustawić id: "myButtonID" w tablicy, w której ustawiasz przyciski, a następnie użyć normalnego selektora $ ("# myButtonId"). znajdź (".ui-button-text"). html ("nowy tekst") – Gurnard
Idealny Dokładnie to, czego szukałem Powinien być wbudowany w okno dialogowe 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'
}
]
});
Choć pytanie jest bardzo stary znajdę odpowiedź jest bardzo prosta i nie została podana tutaj.
- Możesz ustawić identyfikator przycisku i użyć go.
- Wszystkie przyciski dialogowe są przyciskami jQuery UI, dlatego można użyć funkcji
$().button()
do modyfikacji przycisku.
Kod JavaScript jest:
$('#dialog').dialog({
buttons:[{
id: 'buttonId',
click: function() {
// your function
}]
});
$('#buttonId').button('option', 'label', 'Please wait...');
[Zobacz także tę odpowiedź] (http: // stackoverflow. com/questions/10312835/set-jquery-ui-dialog-button-id # 10312946) dla prostszej składni (nie tablicy). Działa wspaniale w połączeniu z tą odpowiedzią. – gibberish
Note the correct way tworzenie wielu przycisków w locie:
'buttons', [
{
text: "Download",
click: function() {...}
},
{
text: "Not now",
click: function() {...}
}
]
Oto przykład przy użyciu stylu non-tablicy: See this jsFiddle na przykład .
Dla mojej wersji jQuery UI (1.11.4), format ten pracował zmienić przycisk tekst:
$('#setActionButton').button('option').text('new text');
Jednak nie zresetować przycisk z nowym tekstem w oknie! To było frustrujące. JaredBroad Odpowiedź powyżej to ta, która zadziałała przede mną, najpierw wyciągając wszystkie przyciski z okna dialogowego, a następnie przełączając się, aby znaleźć przycisk do zmiany nazwy. Potem za każdym razem zmieniał tekst.
Uważam, że jeśli korzystam z wielu okien dialogowych za pomocą tych samych przycisków, mogę zdefiniować klasę dla każdego przycisku w każdym oknie dialogowym, a następnie zmienić tekst na wszystkich przyciskach.
$('#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');
Również zamiast klasy można zdefiniować id dla każdego przycisku (jednak id powinien być unikalny)
- 1. Dynamiczne zmienianie rozmiaru okna JQuery
- 2. Przekaż zmienną do okna dialogowego interfejsu użytkownika JQuery
- 3. Nie można zmienić rozmiaru okna dialogowego interfejsu użytkownika jQuery
- 4. Sprawdzanie poprawności okna dialogowego
- 5. Dodaj pozytywny przycisk do okna dialogowego
- 6. Otwieranie okna dialogowego JQuery Ui w MousePosition
- 7. Dostosowywanie okna dialogowego onbeforeunload
- 8. Pozycjonowanie okna dialogowego jqueryui
- 9. Zamykanie okna dialogowego jQuery na przycisku kliknij
- 10. Knockout MVC JS wewnątrz okna dialogowego JQuery
- 11. dynamiczne zmienianie parametrów bezkształtnych
- 12. Dynamiczne zmienianie koloru komórki datagridview
- 13. Ładowanie elementu iframe wewnątrz okna dialogowego interfejsu użytkownika nie działa
- 14. Przekierowanie okna dialogowego jquery ui na zamknięcie
- 15. JQuery UI dodać identyfikator do okna dialogowego
- 16. Wywoływanie okna dialogowego jQuery bez DIV
- 17. Strzałka w dolnej części okna dialogowego jQuery
- 18. Interfejs Android okna dialogowego uzyskać wewnętrzne widoki okna dialogowego
- 19. JProgressBar Dynamiczne zmienianie koloru prętów
- 20. Niepotrzebne zmienianie rozmiaru okna formularza
- 21. Czy tekst pola dialogowego interfejsu użytkownika jQuery ma opcję nowego wiersza?
- 22. Dynamiczne zmienianie ustawień rytmu selera
- 23. Dynamiczne zmienianie kolejności w mysql
- 24. Jak używać okna dialogowego jQuery UI jako okna dialogowego "potwierdź przed przesłaniem" na ASP.NET formularz
- 25. podczas otwierania jQuery UI okna dialogowego przewija się
- 26. winapi znajdź tytuł okna użytkownika (właściwości) okna dialogowego strony internetowej
- 27. Dostosowywanie okna dialogowego poprzez rozszerzenie okna dialogowego lub AlertDialog
- 28. gtk wyświetlanie okna dialogowego z poziomu okna dialogowego
- 29. Drukuj z Androida bez okna dialogowego systemu
- 30. Formularze Django: Dynamiczne zmienianie tekstu pomocy
Gdybym mógł wybrać najlepszą odpowiedź na to pytanie, to będzie [ten jeden przez ManojRK] (http://stackoverflow.com/questions/4591642/dynamically-changing-jquery-ui-dialog-box-button-text#15863018). Dobra robota, Manoj. – gibberish