choix personnalisés dans la boîte de dialogue de confirmation javascript
-
05-07-2019 - |
Question
Comment écrire une boîte de dialogue de confirmation en javascript avec des choix personnalisés?
Au lieu de juste "Ok" et "Annuler", j'aimerais avoir par exemple "Ceci". " Cela " et "Autre".
La solution
En bref, vous ne pouvez pas.
Vous voudrez peut-être envisager d'utiliser quelque chose comme une boîte de dialogue jQuery UI à la place.
Autres conseils
Vous pouvez demander à l'utilisateur une réponse en utilisant:
var userChoice = prompt("Question");
Vous pouvez boucler cette phrase jusqu'à ce que l'utilisateur entre une réponse parmi les réponses valides.
Vous ne pouvez pas. Utilisez une bibliothèque javascript UI (jQuery UI, YUI, Mootools) et imitez le dialogue dont vous avez besoin.
// custom Confirm builder
function OnConfirm(text, func) {
var _confirm = $('<div/>').addClass('confirm');
_confirm.append($('<h2/>').text(text));
_confirm.append('<br/><br/>');
var _btnCancel = $('<input/>').attr('type', 'button').val('cancel')
.bind('click', function () {
$(this).parent('.confirm').hide();
func(false);
});
var _btnApply = $('<input/>').attr('type', 'button').val('OK')
.bind('click', function () {
$(this).parent('.confirm').hide();
func(true);
});
_confirm.append(_btnCancel);
_confirm.append(_btnApply);
$('body').append(_confirm);
}
$(function () { // documen.loaded
$('#testLink').click(function (e) {
e.preventDefault(); ;
var _href = $(this).attr('href');
var _title = $(this).attr('title');
// call custom confirm function with callback function
OnConfirm(_title, function (_isContinue) {
if (_isContinue) {
location.href = _href;
}
}
);
});
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow