dojo 1.4阻止是/否对话框替换window.confirm

时间:2012-11-24 04:06:46

标签: javascript dojo dialog blocking

我陷入了dojo 1.4。
需要window.confirm()的同步(阻塞)对话框替换 原因:我希望按钮为YES / NO而不是OK / CANCEL 该对话框将从应用程序的多个部分调用 - 因此需要进行适当的清理。是否有具有此功能的dojo库?
我更喜欢所有动态代码,所以我可以在.js文件或html / jsp文件中包含这个新对话框,但是有些工作表示赞赏。

1 个答案:

答案 0 :(得分:1)

您无法使其同步,但您可以阻止表单由event.preventDefault()onsubmit="return false;"提交为@FakeRainBrigand提及。

以下是一个工作示例:http://jsfiddle.net/phusick/73PuE/

enter image description here

它使用了我在上面的评论中提到的the confirm dialog。它是用Dojo 1.8编写的,但它应该与1.4中的大致相同,只需使用dojo.connet而不是dojo/on

var form1 = dom.byId("form1");

on(form1, "submit", function(event) {
    event.preventDefault();
    var form = event.target;
    MessageBox.confirm({ message: "Submit form?" }).then(function() {
        // submit the form upon a click on `Yes`
        form.submit();
    });        
});

您可以在普通的JavaScript 中实现相同的

function confirmHandler(event) {
    event.preventDefault();

    var form = event.target;
    // ask for a confirmation and if confirmed invoke:
    // form.submit();
}

在表单上注册处理程序:

<form onsubmit="confirmHandler(event);">