Jak mam wyłączyć przycisk w oknie dialogowym interfejsu użytkownika jQuery . Nie mogę znaleźć tego w żadnej dokumentacji w powyższym linku.
Mam 2 przyciski do potwierdzenia modalnego („Potwierdź” i „Anuluj”). W niektórych przypadkach chcę wyłączyć przycisk „Potwierdź”.
.button()
wtyczki, więc niekoniecznie są to już najlepsze / najczystsze rozwiązania.Odpowiedzi:
Jeśli dołączasz
.button()
wtyczkę / widżet, który zawiera jQuery UI (jeśli masz pełną bibliotekę i korzystasz z wersji 1.8+, masz ją), możesz jej użyć, aby wyłączyć przycisk i wizualnie zaktualizować stan, na przykład:Możesz spróbować tutaj ... lub jeśli korzystasz ze starszej wersji lub nie używasz widżetu przycisku, możesz go wyłączyć w następujący sposób:
Jeśli chcesz, aby znajdował się w określonym oknie dialogowym, powiedz według identyfikatora, zrób to:
W innych przypadkach, w których
:contains()
może dać fałszywe alarmy, możesz użyć.filter()
tego w ten sposób, ale tutaj jest to przesada, ponieważ znasz swoje dwa przyciski. Jeśli tak jest w innych sytuacjach, wyglądałoby to tak:Uniemożliwiłoby to
:contains()
dopasowanie podciągu czegoś innego.źródło
$("#dialogID").nextAll(".ui-dialog-buttonpane").find("button:contains('Confirm')").attr("disabled", true).addClass("ui-state-disabled");
$(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
chociaż jeśli chcesz wyłączyć przycisk z funkcji, którą masz do niego, musisz dodać widżet do tego okna dialogowego i wyłączyć przycisk po tym; w ten sposób$(this).dialog("widget").find(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
Wygląda na to, że ktokolwiek, nawet w tym powiązanym pytaniu , zaproponował takie rozwiązanie, podobne do pierwszej części odpowiedzi udzielonej przez Nicka Cravera:
Następnie w innym miejscu powinieneś być w stanie użyć interfejsu API dla przycisku interfejsu jquery:
źródło
{text:"ok",disabled:true,click: function(){}}
$("#dialog").dialog("widget").find(".button-ok-class").button("enable")
Można również użyć
nieteraz udokumentowanądisabled
atrybut:Aby włączyć po otwarciu okna, użyj:
JsFiddle: http://jsfiddle.net/xvt96e1p/4/
źródło
attr: { 'data-value' : 'some value here' }
jeśli chcesz dodać atrybutdata-value
do przycisku.disabled
atrybut musi zostać przypisany podczas tworzenia przycisków.Następujące funkcje działają z poziomu funkcji klikania przycisków:
źródło
Przycisk jest identyfikowany przez klasę
ui-button
. Aby wyłączyć przycisk:O ile nie tworzysz dynamicznie okna dialogowego (co jest możliwe), będziesz znać położenie przycisku. Tak więc, aby wyłączyć pierwszy przycisk:
ui-state-disabled
Klasa jest co daje przycisk miłe przyciemnione styl.źródło
Stworzyłem funkcję jQuery, aby nieco ułatwić to zadanie. Prawdopodobnie teraz jest lepsze rozwiązanie ... tak czy inaczej, oto moje 2 centy. :)
Po prostu dodaj to do swojego pliku JS:
Wyłącz przycisk „OK” w oknie dialogowym z klasą „dialog”:
Włącz wszystkie przyciski:
Włącz przycisk „Zamknij” i zmień kolor:
Tekst na wszystkich przyciskach czerwony:
Mam nadzieję że to pomoże :)
źródło
źródło
Możesz nadpisać tablicę przycisków i pozostawić tylko te, których potrzebujesz.
źródło
ten kod wyłącza przycisk z „YOUR_BUTTON_LABEL”. możesz zamienić nazwę w zawiera (). wyłączyć
zastąp „YOUR_BUTTON_LABEL” etykietą swojego przycisku. umożliwić
źródło
Możesz to zrobić, aby wyłączyć pierwszy przycisk, na przykład:
źródło
Sposób, w jaki to robię, jest
Cancel: function(e) { $(e.target).attr( "disabled","disabled" ); }
To najkrótszy i najłatwiejszy sposób, jaki znalazłem.
źródło
Jeśli używasz nokautu, to jeszcze czystszy. Wyobraź sobie, że masz:
Magia pochodzi ze źródła interfejsu użytkownika jQuery :
Możesz w zasadzie wywołać DOWOLNĄ funkcję instancji jQuery, przepuszczając ją przez obiekt przycisku.
Na przykład, jeśli chcesz używać HTML:
Lub, jeśli chcesz dodać klasę do przycisku (możesz to zrobić na wiele sposobów):
Może jesteś szalony i chcesz usunąć przycisk z domeny, gdy jest najechany:
Jestem naprawdę zaskoczony, że nikt nie wspomniał o tym w niezliczonej liczbie takich wątków ...
źródło
To zadziałało dla mnie -
źródło
Możesz wyłączyć przycisk podczas tworzenia okna dialogowego:
Lub możesz go wyłączyć w dowolnym momencie po utworzeniu okna dialogowego:
źródło