Javascript 从函数内部单击复选按钮
我正在构建一个纯javascript alertbox脚本,但我被困在用户单击按钮的地方。我想做的是创建一个函数,根据按钮的点击来返回true或false。我想用一个Javascript页面来生成HTML和CSS。我只知道在不启动新函数的情况下从函数返回值的方法。关键是我需要第二个函数来捕捉按钮的点击 我希望您知道一种使函数根据单击的按钮返回值的方法。 我的Javascript代码如下: 如果有不清楚的地方,请在评论中询问我 给劳金 我的目标是调用函数并接收true或false:Javascript 从函数内部单击复选按钮,javascript,Javascript,我正在构建一个纯javascript alertbox脚本,但我被困在用户单击按钮的地方。我想做的是创建一个函数,根据按钮的点击来返回true或false。我想用一个Javascript页面来生成HTML和CSS。我只知道在不启动新函数的情况下从函数返回值的方法。关键是我需要第二个函数来捕捉按钮的点击 我希望您知道一种使函数根据单击的按钮返回值的方法。 我的Javascript代码如下: 如果有不清楚的地方,请在评论中询问我 给劳金 我的目标是调用函数并接收true或false: if(Sim
if(SimpleAlert( title, text, cancel))
{
//user clicked OK
}
else
{
//user clicked Cancel
}
发布的答案带来了新的机会,但也许您已经知道我代码中缺少的部分了?使用回调的简单示例: 为Simplelert提供一个额外的参数:
开始
HandlerResult函数:
function handleResult(buttonClicked) {
if (buttonClicked) {
alert("Ok");
} else {
alert("Cancel");
}
}
已更改的确定/取消处理程序:
function SimpleAlertCancel()
{
document.body.removeChild(document.getElementById('SimpleAlertOverlay'));
document.body.removeChild(document.getElementById('SimpleAlertStylesheet'));
callback(false);
}
function SimpleAlertOK()
{
document.body.removeChild(document.getElementById('SimpleAlertOverlay'));
document.body.removeChild(document.getElementById('SimpleAlertStylesheet'));
callback(true);
}
如评论中所述,代码如下:
if(SimpleAlert( title, text, cancel))
{
//user clicked OK
}
else
{
//user clicked Cancel
}
不可能,因为在用户实际按下其中一个按钮之前,simplelert
无法返回值。(实际上,可以使用setInterval
,但这不是一种推荐的方法!)
不过,您可以实现同样的效果:
SimpleAlert(title, text, cancel, function(clickedOk) {
if (clickedOk) {
//user clicked OK
} else {
//user clicked Cancel
}
});
完全不同的是:在JavaScript中,将尖括号放在新行上并不是很好的做法,因为这可能会导致问题。到底是什么问题?用户单击“确定/取消”后是否需要回调?@Laoujin问题是我希望我的主函数(在本例中为simplelert())返回一个值。如果用户单击OK,它必须返回true;如果用户单击Cancel或左上角的叉号,它必须返回false。但是在运行main函数时,我无法从按钮获取回调。如果用户单击生成的按钮,我不知道如何从主函数返回值。恐怕您不能:
simplelert
在显示警报框后返回,但您只知道用户稍后单击的按钮。我认为回调可以解决您的问题——尽管方式不同。为什么不在元素中添加事件呢?请看我问题的底部。谢谢你的回答,顺便说一句!
SimpleAlert(title, text, cancel, function(clickedOk) {
if (clickedOk) {
//user clicked OK
} else {
//user clicked Cancel
}
});