Ich verwende Jquery-Ui-Dialoge in meiner Anwendung. Wie stelle ich die Schaltflächen "Speichern" und "Abbrechen" in einem Jquery-Dialog anders ein? Daher ist "Speichern" ansprechender als "Abbrechen" .. .Ich könnte einen Hyperlink für "Abbrechen" verwenden, aber wie platziere ich das im selben Tastenfeld?
So fügen Sie benutzerdefinierte Klassen in jQuery UI Dialog (Version 1.8 und höher) hinzu:
$('#foo').dialog({
'buttons' : {
'cancel' : {
priority: 'secondary', class: 'foo bar baz', click: function() {
...
},
},
}
});
In jQueryUI 1.8.9 funktioniert className
statt classes
.
$('#element').dialog({
buttons:{
"send":{
text:'Send',
className:'save'
},
"cancel":{
text:'Cancel',
className:'cancel'
}
});
Ich verwende jQuery UI 1.8.13 und die folgende Konfiguration funktioniert nach Bedarf:
var buttonsConfig = [
{
text: "Ok",
"class": "ok",
click: function() {
}
},
{
text: "Annulla",
"class": "cancel",
click: function() {
}
}
];
$("#foo").dialog({
buttons: buttonsConfig
// ...
ps: Denken Sie daran, "class" in Anführungszeichen einzuhüllen, da es sich um ein reserviertes Word in js handelt!
Es ist eine Weile her, seit diese Frage veröffentlicht wurde, aber der folgende Code funktioniert in allen Browsern (beachten Sie, dass die Antwort von MattPII
in FFox und Chrome funktioniert, es werden jedoch Skriptfehler im IE ausgelöst).
$('#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')}
}
]
});
Ab jquery ui Version 1.8.16 habe ich es funktioniert.
$('#element').dialog({
buttons: {
"Save": {
text: 'Save',
class: 'btn primary',
click: function () {
// do stuff
}
}
});
Diese Lösungen sind alle sehr gut, wenn Sie nur ein Dialogfeld auf der Seite haben. Wenn Sie jedoch mehrere Dialoge gleichzeitig formatieren möchten, versuchen Sie Folgendes:
$("#element").dialog({
buttons: {
'Save': function() {},
'Cancel': function() {}
}
})
.dialog("widget")
.find(".ui-dialog-buttonpane button")
.eq(0).addClass("btnSave").end()
.eq(1).addClass("btnCancel").end();
Anstatt die Schaltflächen global auszuwählen, wird das Widgetobjekt abgerufen, der Schaltflächenbereich gefunden und die Schaltflächen einzeln formatiert. Dies erspart Ihnen viele Schmerzen, wenn Sie mehrere Dialoge auf einer Seite haben
nachdem ich einige andere Threads angesehen hatte, kam ich zu dieser Lösung, um den Schaltflächen Symbole in einem Bestätigungsdialogfeld hinzuzufügen, was in Version 1.8.1 gut zu funktionieren scheint und für andere Formatierungen geändert werden kann:
$("#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>");
Ich würde gerne wissen, ob es einen besseren Weg gibt, aber das scheint ziemlich effizient zu sein.
Ich musste das folgende Konstrukt in der jQuery-Benutzeroberfläche 1.8.22 verwenden:
var buttons = $('.ui-dialog-buttonset').children('button');
buttons.removeClass().addClass('button');
Dadurch werden alle Formatierungen entfernt und der Ersatzstil bei Bedarf angewendet.
Funktioniert in den meisten gängigen Browsern.
Ich habe die JQuery UI 1.8.11-Version und dies ist mein Arbeitscode. Sie können auch die Höhe und Breite je nach Ihren Anforderungen anpassen.
$("#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 () {}
});
Diese Funktion fügt jeder Schaltfläche in Ihrem Dialogfeld eine Klasse hinzu. Sie können dann wie üblich einen Stil erstellen (oder mit jQuery auswählen):
$('.ui-dialog-buttonpane :button').each(function() {
$(this).addClass($(this).text().replace(/\s/g,''));
});
check out jquery ui 1.8.5 ist hier verfügbar http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js .__ Schaltfläche für die Implementierung der Dialogbenutzeroberfläche