我正在尝试编写自定义的JavaScript确认框 . 单击[确定]按钮,对话框应为true值,单击[CANCEL]按钮时,对话框应返回false值 . 但是,警报框似乎过早地触发,而当我单击按钮时,没有任何反应 .
function test() {
var btn1 = "<br><br><input type='button' class='button' value='OK' onclick='function(){ return true}'>"
var btn2 = "<br><br><input type='button' class='button' value='CANCEL' onclick='function(){ return false}'>"
var x = ShowDialog(false,"Test",btn1 + btn2)
alert(x)
}
我做了一个fiddle:
1 回答
首先,你不能在javascript中使用
alert
阻止执行的自定义对话框 . 实际上你想要实现的是confirm()
. 它是浏览器提供的系统功能 . 它返回true
或false
,具体取决于单击的按钮 .但是,使用html进行自定义弹出窗口的唯一方法是异步执行 . 因此,您应该调用
ShowDialog
并为其提供回调 . 当用户单击其中一个按钮时将调用它 . 调用ShowDialog
之后存在的任何代码都将立即被调用 . 并且您要处理对话结果的所有代码都应放在回调中Edited fiddle