获取自定义提示框 return true or false
Getting a custom prompt box to return true or false
我正在尝试编写自定义 javascript 确认框。单击 [OK] 按钮时,对话框应为真值,单击 [CANCEL] 按钮时,对话框应 return 值为假。但是,似乎警告框过早触发,当我单击按钮时,没有任何反应。
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:
首先,您不能在 javascript 中使用自定义对话框来阻止执行 alert
的方式。实际上,您要实现的是 confirm()
。是浏览器提供的系统功能。它 returns true
或 false
取决于单击的按钮。
然而,使用 html 进行自定义弹出窗口的唯一方法是异步进行。因此,您应该调用 ShowDialog
并为其提供回调。当用户单击其中一个按钮时将调用它。调用 ShowDialog
之后存在的任何代码都将被立即调用。所有你想处理对话框结果的代码都应该放在回调中
var btn1 = "<br><br><input type='button' class='button' value='OK' x-data='true'>"
var btn2 = "<br><br><input type='button' class='button' value='CANCEL' x-data='false'>"
ShowDialog(false, "Test", btn1 + btn2, undefined, function(result){
alert(result)
})
function ShowDialog(modal, title, text, colour, callback) {
...
$('input', '#dialog_text').click(function(){
if(typeof callback === 'function'){
callback($(this).attr('x-data'));
}
HideDialog();
});
}
我正在尝试编写自定义 javascript 确认框。单击 [OK] 按钮时,对话框应为真值,单击 [CANCEL] 按钮时,对话框应 return 值为假。但是,似乎警告框过早触发,当我单击按钮时,没有任何反应。
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:
首先,您不能在 javascript 中使用自定义对话框来阻止执行 alert
的方式。实际上,您要实现的是 confirm()
。是浏览器提供的系统功能。它 returns true
或 false
取决于单击的按钮。
然而,使用 html 进行自定义弹出窗口的唯一方法是异步进行。因此,您应该调用 ShowDialog
并为其提供回调。当用户单击其中一个按钮时将调用它。调用 ShowDialog
之后存在的任何代码都将被立即调用。所有你想处理对话框结果的代码都应该放在回调中
var btn1 = "<br><br><input type='button' class='button' value='OK' x-data='true'>"
var btn2 = "<br><br><input type='button' class='button' value='CANCEL' x-data='false'>"
ShowDialog(false, "Test", btn1 + btn2, undefined, function(result){
alert(result)
})
function ShowDialog(modal, title, text, colour, callback) {
...
$('input', '#dialog_text').click(function(){
if(typeof callback === 'function'){
callback($(this).attr('x-data'));
}
HideDialog();
});
}