choix personnalisés dans le dialogue de confirmation javascript

comment écrire un dialogue de confirmation en javascript avec des choix personnalisés?

au Lieu de "Ok" et "Annuler", je voudrais avoir par exemple "Ceci", "Cela" et "Autres".

18
demandé sur TheOne 2009-11-26 00:21:12

4 réponses

en bref, vous ne pouvez pas.

vous pourriez envisager d'utiliser quelque chose comme un dialogue jQuery UI à la place.

16
répondu Jordan Ryan Moore 2009-11-25 21:24:47

vous ne pouvez pas. Utilisez une bibliothèque javascript UI (jQuery UI, YUI, Mootools) et imitez un dialogue dont vous avez besoin.

2
répondu NilColor 2009-11-25 22:07:27

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 dans les réponses valides.

2
répondu Isidro Moran 2013-06-07 21:19:55
// 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;
                }
            }
        );
    });
});
1
répondu Alec Kobi 2015-08-13 08:24:58