1

我被困在dojo 1.4中。
需要一个同步(阻塞)对话框替换 window.confirm()。
为什么:我希望按钮是 YES/NO 而不是 OK/CANCEL。
此对话框将从应用程序的多个部分调用——因此需要适当的清理。是否有具有此功能的 dojo 库?
我更喜欢所有动态代码,因此我可以在 .js 文件或 html/jsp 文件中包含这个新对话框,但可以使用的东西值得赞赏。

4

1 回答 1

1

你不能让它同步,但你可以阻止表单提交event.preventDefault()onsubmit="return false;"@FakeRainBrigand 提到的。

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

在此处输入图像描述

它使用了我在上面评论中提到的确认对话框。它是用 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);">
于 2012-11-25T11:16:25.643 回答