1

showModalConfirmDialogはい/いいえの2つのボタンを備えたカスタムJavaScript作成ダイアログボックスを作成し、背景を暗くする関数があります。今私の関数では、その関数を次のように呼び出したいと思います:

var outcome = showModalConfirmDialog('Are you sure?');

クリックされたボタンに応じて反応したい。

if(outcome == true){
    // do something
} else {
    // do something else
}

ボタンは true/false を返します。Javascript コード:

button1.onclick = function(evt){
    return true;
};

button2.onclick = function(evt){
    return false;
};

何が欠けているのかわからないので、助けていただければ幸いです。ありがとう

4

1 に答える 1

5

ネイティブ モーダルの動作を再現することはできません。代わりに、コールバックを使用できます。

こちらです :

function showModalConfirmDialog(msg, handler) {
    button1.onclick = function(evt){
        handler(true);
    };
    button2.onclick = function(evt){
        handler(false);
    };
}
showModalConfirmDialog('Are you sure?', function (outcome) { 
    alert(outcome ? 'yes' : 'no'); 
});

またはこの方法:

function showModalConfirmDialog(msg, confirmHandler, denyHandler) {
    button1.onclick = confirmHandler;
    button2.onclick = denyHandler;
}
showModalConfirmDialog(
    'Are you sure?', 
    function () { alert('yes'); }, 
    function () { alert('no'); }
);
于 2013-11-14T13:05:16.523 に答える