Używam okna dialogowego jquery ui w mojej aplikacji. Jak inaczej ustawić przyciski "Zapisz" i "Anuluj" w oknie dialogowym jquery? "Zapisz" jest bardziej atrakcyjne niż "Anuluj". Mogę użyć hiperłącza do "Anuluj", ale jak mogę umieścić to w tym samym panelu przycisków?okno dialogowe jquery zapisz przycisk anulowania stylizacja
Odpowiedz
Oto jak dodać niestandardowych klas w jQuery UI Dialog (wersja 1.8+):
$('#foo').dialog({
'buttons' : {
'cancel' : {
priority: 'secondary', class: 'foo bar baz', click: function() {
...
},
},
}
});
Niestety, wygląda na to, że zmienili program milowy dla tej poprawki na 1.9. –
prace klasy, zajęcia nie. po prostu dołączają wszelkie atrybuty, które umieszczasz w tym obiekcie do dom. – benstraw
dodanie klasy faktycznie powoduje przerwanie js w IE8 i powoduje, że okno dialogowe nie działa. Jeśli użyjesz tego, wstawiaj apostrofy wokół klasy słów. A więc: priority: "secondary", "class": "foo bar baz", ... itd. –
Sprawdziłem HTML wygenerowany przez okno dialogowe interfejsu użytkownika. Powoduje to wyświetlenie panelu przycisków:
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<button type="button" class="ui-state-default ui-corner-all">Delete all items in recycle bin</button>
<button type="button" class="ui-state-default ui-corner-all different" style="border: 1px solid blue;">Cancel</button>
</div>
Dodanie klasy do przycisku Anuluj powinno być łatwe.
$ (".i-dialog-buttonpane: last-child"). Css ("kolor tła", "#ccc");
Spowoduje to mały szary przycisk Anuluj. Możesz stylizować ten przycisk, jak chcesz.
Powyższy kod zakłada, że przycisk Anuluj jest ostatnim przyciskiem. Głupiec dowód sposób to zrobić byłoby
$('.ui-dialog-buttonpane :button')
.each(
function()
{
if($(this).text() == 'Cancel')
{
//Do your styling with 'this' object.
}
}
);
po patrząc na some other threads wymyśliłem tego rozwiązania dodać ikony do przycisków w oknie dialogowym potwierdzenia, które wydaje się działać dobrze w wersji 1.8.1 i mogą być modyfikowane, aby zrobić inną stylistykę:
$("#confirmBox").dialog({
modal:true,
autoOpen:false,
buttons: {
"Save": function() { ... },
"Cancel": function() { ... }
}
});
var buttons = $('.ui-dialog-buttonpane').children('button');
buttons.removeClass('ui-button-text-only').addClass('ui-button-text-icon');
$(buttons[0]).append("<span class='ui-icon ui-icon-check'></span>");
$(buttons[1]).append("<span class='ui-icon ui-icon-close'></span>");
byłbym ciekaw, czy nie było lepiej w ay to zrobić, ale wydaje się to dość skuteczne.
To działa w jquery-ui 1.8.9 – Ophiuchus
Ta funkcja doda klasę do każdego przycisku w twoim oknie dialogowym. Następnie można styl (lub wybierz z jQuery) jako normalny:
$('.ui-dialog-buttonpane :button').each(function() {
$(this).addClass($(this).text().replace(/\s/g,''));
});
check out jQuery UI 1.8.5 jest dostępna tutaj http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js i ma nowy przycisk na realizację ui dialog
Rozwiązania te są wszystko bardzo dobrze, jeśli masz tylko jedno okno na stronie w dowolnym czasie, jednak jeśli chcesz styl wielu okien dialogowych na raz spróbuj:
$("#element").dialog({
buttons: {
'Save': function() {},
'Cancel': function() {}
}
})
.dialog("widget")
.find(".ui-dialog-buttonpane button")
.eq(0).addClass("btnSave").end()
.eq(1).addClass("btnCancel").end();
Zamiast globalnie wybierając przyciski, to dostaje th Obiekt widgetu i znajduje jego okienko, a następnie indywidualnie wybiera każdy przycisk. Oszczędza to wiele bólu, gdy masz kilka okien dialogowych na jednej stronie:
W jQueryUI 1.8.9, używając className
zamiast classes
działa.
Od wersji jquery ui 1.8.16 poniżej jest jak to działa.
$('#element').dialog({
buttons: {
"Save": {
text: 'Save',
class: 'btn primary',
click: function() {
// do stuff
}
}
});
Po prostu próbowałem użyć tego stylu i wygenerował błąd skryptu w IE 7,8 i 9. –
Ja również doświadczyłem tego problemu i dodałem rozwiązanie w postaci odpowiedzi. – maxp
Używam jQuery UI 1.8.13 i następująca konfiguracja działa jak trzeba:
var buttonsConfig = [
{
text: "Ok",
"class": "ok",
click: function() {
}
},
{
text: "Annulla",
"class": "cancel",
click: function() {
}
}
];
$("#foo").dialog({
buttons: buttonsConfig
// ...
ps: pamiętać, aby owinąć „klasa” z cytatami bo to słowo zarezerwowane w js!
co powiedział - klasa: działa, ale nie w starszych IE, gdzie "klasa": robi – derekcohen
Od czasu opublikowania tego pytania minęło trochę czasu, ale poniższy kod działa we wszystkich przeglądarkach (zauważ, że odpowiedź MattPII
działa w FFox i Chrome, powoduje błędy skryptów w IE).
$('#foo').dialog({
autoOpen: true,
buttons: [
{
text: 'OK',
open: function() { $(this).addClass('b') }, //will append a class called 'b' to the created 'OK' button.
click: function() { alert('OK Clicked')}
},
{
text: "Cancel",
click: function() { alert('Cancel Clicked')}
}
]
});
Dzięki! Działa dla mnie w wersji 1.8.23, ale niektóre ze starszych odpowiedzi na starsze wersje nie mogłem dostać do pracy. – Jagd
bardzo dobrze, rozwiązał moje problemy. –
musiałem użyć następujących skonstruować w jQuery UI 1.8.22:
var buttons = $('.ui-dialog-buttonset').children('button');
buttons.removeClass().addClass('button');
Usuwa formatowanie i stosuje stylizacji zastępczy w razie potrzeby.
Działa w większości głównych przeglądarek.
Mam wersję JQuery UI 1.8.11 i to jest mój działający kod. Możesz także dostosować jego wysokość i szerokość w zależności od wymagań.
$("#divMain").dialog({
modal:true,
autoOpen: false,
maxWidth: 500,
maxHeight: 300,
width: 500,
height: 300,
title: "Customize Dialog",
buttons: {
"SAVE": function() {
//Add your functionalities here
},
"Cancel": function() {
$(this).dialog("close");
}
},
close: function() {}
});
- 1. Okno dialogowe Jquery: Ukryj przycisk
- 2. Zapisz okno dialogowe pliku w Tkinter
- 3. Przycisk anulowania IAP iOS UIAlertView
- 4. jQuery Odroczone i okno dialogowe
- 5. modalne okno dialogowe jquery onclick?
- 6. jQuery Movable Modalne okno dialogowe
- 7. Okno dialogowe jQuery zawsze wyśrodkowane
- 8. Jak modlić okno dialogowe jQuery?
- 9. Zapisz okno dialogowe pliku z PowerShell/C# z cmd partii
- 10. jQuery: pytanie dialogowe - przycisk zmiany po init
- 11. Okno dialogowe jQuery UI + Sprawdź poprawność
- 12. Czy przycisk anulowania wymaga potwierdzenia?
- 13. Jak odtworzyć okno dialogowe jquery po zniszczeniu
- 14. Okno dialogowe jQuery UI: jak zamknąć okno dialogowe po kliknięciu na zewnątrz?
- 15. Przycisk anulowania Omniauth-facebook
- 16. Słowo VBA - Zapisz jako okno dialogowe z początkową nazwą pliku
- 17. Okno dialogowe otwierania pliku
- 18. Okno dialogowe jquery ui jako potwierdzenie
- 19. wykryć, kiedy każdy okno dialogowe jQuery
- 20. Jquery niszczy okno dialogowe po x sekundach
- 21. Programowo otworzyć okno dialogowe, w JQuery Komórka
- 22. Okno dialogowe jQuery nie działa z Datepicker
- 23. Okno dialogowe jquery - div znika po inicjalizacji
- 24. Wyświetl okno dialogowe jquery w oknie nadrzędnym
- 25. opcja JQuery modalne okno dialogowe nie działa
- 26. Jak utworzyć okno dialogowe jQuery w funkcji
- 27. Okno dialogowe jquery na przycisku kliknij
- 28. Okno dialogowe jQuery modalne nad iFrame
- 29. Okno dialogowe Primefaces + commandButton
- 30. Okno anulowania Caliburn Micro blisko od ViewModel
Mówisz o typowym oknie dialogowym JavaScript (np. Rodzaju, który otrzymasz od wezwania())? Ponieważ nie można ich stylizować. Najlepiej jest użyć pewnego rodzaju nakładki modalnej dla jQuery (nie mogłem polecić takiego, jakiego nigdy nie używałem). – inkedmn
Jak wspomniano we wpisie, używa okna dialogowego jQuery UI. – SolutionYogi
To jest po prostu kwestia spojrzenia na elementy, które jQuery dodaje do strony i stylizacji na tej podstawie (lub przeczytaniu dokumentacji, która niewątpliwie obejmuje to - http://jqueryui.com/demos/dialog/#theming) – inkedmn