Warten auf Antwort SweetAlert
Momentan habe ich eine Funktion fragt den Benutzer um Bestätigung, wenn das ändern eines Wertes in einer dropdown-Liste. Dies funktioniert gut mit den standard -JavaScript
confirm()
. Hier ist die fiddle.
var prev_val;
$('#dropdownId').focus(function () {
prev_val = $(this).val();
}).change(function () {
$(this).blur();
var success = confirm('Are you sure you want to change the Dropdown?');
if (success) {
//Proceed as normal.
} else {
//Reset the value & stop normal event
$(this).val(prev_val);
return false;
}
});
Aber wenn SweetAlert
das change-Ereignis immer stattfindet, bevor ich in der Lage bin, um zu bestätigen/Abbrechen. Bedeutung, wenn ich wählen Sie einen neuen Wert ein und drücken Sie "Abbrechen", es hört nicht auf, den Fall und setzen Sie den vorherigen Wert. Das tut es mit der regelmäßigen JavaScript
confirm
dialog.
var prev_val;
$('#' + dropdownId).focus(function () {
prev_val = $(this).val();
}).change(function (e) {
$(this).blur();
return swal({
title: "Are you sure?",
text: "Do you want to change the dropdown?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes",
cancelButtonText: "No",
closeOnConfirm: true,
closeOnCancel: true
},
function (isConfirm) {
if (isConfirm) {
e.preventDefault();
return true;
} else {
$(this).val(prev_val);
return false;
}
});
});
Könnte es auch interessant sein, zu beachten, dass diese JavaScript
vielleicht sogar ungültig (ziemlich neu JavaScript
), z.B. Rückkehr aus der confirm
Funktion und aus der swal
- Funktion funktioniert nicht.
Jedoch nach Googeln um, fand ich Menschen mit ähnlichen Problemen.
- wie-zu-verwenden-bestätigen-mit-sweet-alert
- how-to-run-a-sweetalert-instead-of-default-javascript-confirm-Methode
Aber das scheint mir ein bisschen hacky, da es die Verhinderung jeder Handlung, aber wenn Sie die Auswahl bestätigen, dass er neu erstellt, und die Funktion, die sollte genannt worden standardmäßig. Das scheint wie ein ziemlich hack für etwas so einfach.
Jede Möglichkeit der SweetAlert
einfach handeln wie eine normale confirm
dialog?
- Ist das nicht dein code funktioniert?
- Es ist für eine regelmäßige JavaScript
Confirm
. Aber das ist ziemlich langweilig, ich würde gerne die SweetAlert Dialoge, das gleiche zu tun. - Auch die sweetAlert code scheint korrekt zu sein. Was ist der Punkt, den Sie haben?
- Mit dem aktuellen code bekomme ich eine
SweetAlert
dialog, aber es ändert IMMER den Wert. Unabhängig vom drücken dercancel
oderconfirm
Schaltflächen im dialog. Ich will es zu stoppen, das change-Ereignis, wie bei der normalenconfirm
dialog - wenn möglich, geben Sie bitte jsfiddle des Codes, die Sie getan haben, mit Sweet-Alert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Wert nicht zurück, weil
this
imswal
ist nicht die wählen, aber die sweet-alert-dialog. Also in Ihrem change-Ereignis aus, Sie haben eine variable definieren, hält der geänderten select-element, und verwenden Sie es, um den Wert zurück, wenn der Benutzer auf "Nein".Finden Sie ein funktionierendes Beispiel in diesem fiddle.
JS: