我陷入了dojo 1.4。
需要window.confirm()的同步(阻塞)对话框替换
原因:我希望按钮为YES / NO而不是OK / CANCEL
该对话框将从应用程序的多个部分调用 - 因此需要进行适当的清理。是否有具有此功能的dojo库?
我更喜欢所有动态代码,所以我可以在.js文件或html / jsp文件中包含这个新对话框,但是有些工作表示赞赏。
答案 0 :(得分:1)
您无法使其同步,但您可以阻止表单由event.preventDefault()
或onsubmit="return false;"
提交为@FakeRainBrigand提及。
以下是一个工作示例:http://jsfiddle.net/phusick/73PuE/。
它使用了我在上面的评论中提到的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);">