Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从函数内部单击复选按钮_Javascript - Fatal编程技术网

Javascript 从函数内部单击复选按钮

Javascript 从函数内部单击复选按钮,javascript,Javascript,我正在构建一个纯javascript alertbox脚本,但我被困在用户单击按钮的地方。我想做的是创建一个函数,根据按钮的点击来返回true或false。我想用一个Javascript页面来生成HTML和CSS。我只知道在不启动新函数的情况下从函数返回值的方法。关键是我需要第二个函数来捕捉按钮的点击 我希望您知道一种使函数根据单击的按钮返回值的方法。 我的Javascript代码如下: 如果有不清楚的地方,请在评论中询问我 给劳金 我的目标是调用函数并接收true或false: if(Sim

我正在构建一个纯javascript alertbox脚本,但我被困在用户单击按钮的地方。我想做的是创建一个函数,根据按钮的点击来返回true或false。我想用一个Javascript页面来生成HTML和CSS。我只知道在不启动新函数的情况下从函数返回值的方法。关键是我需要第二个函数来捕捉按钮的点击

我希望您知道一种使函数根据单击的按钮返回值的方法。 我的Javascript代码如下:

如果有不清楚的地方,请在评论中询问我

给劳金

我的目标是调用函数并接收true或false:

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
    }
});