Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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确认框与php post方法结合起来?_Javascript_Confirmation - Fatal编程技术网

尝试将javascript确认框与php post方法结合起来?

尝试将javascript确认框与php post方法结合起来?,javascript,confirmation,Javascript,Confirmation,以下是Javascript代码,仅供测试: <script type="text/javascript"> function show_confirm() { var r=confirm("Are you sure?"); if (r==true) { } else {

以下是Javascript代码,仅供测试:

<script type="text/javascript">
    function show_confirm()
        {
            var r=confirm("Are you sure?");
            if (r==true)
            {                   
            }
            else
            {                    
            }
        } 
</script>
这是php代码:

<form action="Test.php" method="post">
    <input type="text" name="test"/>
    <input type="submit" value="submit" onclick="show_confirm()"/>
</form>

因此,如果单击提交按钮,将弹出确认框。如果单击OK按钮,页面将重定向到Test.php并执行post方法,就像正常的php页面提交操作一样。或者,如果单击“取消”按钮,我希望它保持在同一页面,并且不会执行post方法。是否可以实现此功能以及如何修改代码?我知道PHP用于服务器,JS用于客户端。我不确定我是否能像这样把它们混在一起。或者我应该使用Ajax?谢谢你的帮助

您可以直接从按钮执行此操作。返回false将取消提交。。。所以

<input type="submit" onclick="javascript:return confirm('Are you sure?');">
编辑:差不多4年后读到这篇文章,我不得不改变它

称之为

我相信这也将处理没有选择任何内容但对话框关闭的情况


注意:应避免使用内联事件侦听器。使用Javascript附加事件侦听器。

您可以直接从按钮执行此操作。返回false将取消提交。。。所以

<input type="submit" onclick="javascript:return confirm('Are you sure?');">
编辑:差不多4年后读到这篇文章,我不得不改变它

称之为

我相信这也将处理没有选择任何内容但对话框关闭的情况


注意:应避免使用内联事件侦听器。使用Javascript附加事件侦听器。

进一步简化了rlemon的答案,无需使用Javascript:return,还修复了内部双引号:

<input type="submit" onclick="return confirm('Are you sure?')" />

进一步简化了rlemon的答案—不需要javascript:return,还修复了内部双引号:

<input type="submit" onclick="return confirm('Are you sure?')" />

最好的方法如下:

<script>
    function show_confirm(){
        return confirm("Are you sure?");
    }
</script>
<input type="submit" onclick="return show_confirm();">
我使用show_confirm而不是直接使用内置函数的原因是,如果要更改确认弹出窗口的功能,那么在代码中的任何地方使用内置函数都会困难得多

抽象出此类功能并编写清晰、简单的代码(如此)将使您成为一名更好的程序员:


警告:正如我在下面的评论中所指出的,只有当用户明确单击submit按钮时,这才有效。如果用户通过其他方法提交表单,确认框将不会显示。查看是否要显示确认,无论表单是如何提交的。

执行此操作的最佳方法如下:

<script>
    function show_confirm(){
        return confirm("Are you sure?");
    }
</script>
<input type="submit" onclick="return show_confirm();">
我使用show_confirm而不是直接使用内置函数的原因是,如果要更改确认弹出窗口的功能,那么在代码中的任何地方使用内置函数都会困难得多

抽象出此类功能并编写清晰、简单的代码(如此)将使您成为一名更好的程序员:


警告:正如我在下面的评论中所指出的,只有当用户明确单击submit按钮时,这才有效。如果用户通过其他方法提交表单,确认框将不会显示。查看是否要显示确认,无论表单是如何提交的。

他还需要更改show\u confirm函数,使其返回值。我已删除该函数。。除非正在运行其他验证,否则我认为不需要它。注意,onclick属性中不需要javascript:part。onclick=返回。。。够了。对于函数表单版本,我理解您为清晰起见提供了与OP相同的if语法,因此@the OP:这种语法冗长且不必要。r已经是bool了,因此返回r比if-else语法更为简洁,因此更受欢迎。是的,我同意。但是,如果根据确认对话框的结果有条件地运行任何其他代码,则需要if语句。它可以压缩为ifconfirmtext{/*其他一些代码*/return true;}return false@雷蒙:是的,那是真的。如果r{…}else{…}返回r;,我仍然可能会尝试这样做;。如果您可以在不使代码变得更复杂的情况下最小化退出点的数量,则可以使调试变得更容易。他还需要更改show_confirm函数,使其返回一个值。我已删除该函数。。除非正在运行其他验证,否则我认为不需要它。注意,onclick属性中不需要javascript:part。onclick=返回。。。够了。对于函数表单版本,我理解您为清晰起见提供了与OP相同的if语法,因此@the OP:这种语法冗长且不必要。r已经是bool了,因此返回r比if-else语法更为简洁,因此更受欢迎。是的,我同意。但是,如果根据确认对话框的结果有条件地运行任何其他代码,则需要if语句。它可以压缩为ifconfirmtext{/*其他一些代码*/return true;}return false@雷蒙:是的,那是真的。如果r{…}else{…}返回r;,我仍然可能会尝试这样做;。如果您可以在不使代码变得更复杂的情况下最小化退出点的数量,那么就可以进行调试
这样会保留post数据吗?会保留post数据吗?实际上,您确实需要返回。只是不是javascript:。如果您想知道为什么,那是因为您放在onclick中的代码最终作为onclick函数体绑定到submit元素的DOM节点。此函数在单击时被调用并检查是否为false,因此如果希望表单不提交,则必须实际返回false。实际上,您确实需要返回。只是不是javascript:。如果您想知道为什么,那是因为您放在onclick中的代码最终作为onclick函数体绑定到submit元素的DOM节点。此函数在单击时被调用并检查是否为false,因此如果希望表单不提交,则必须返回false。@user878729:您可能还想知道为什么onclick会以这种方式工作。当您在HTML中以字符串形式提供return show\u confirm时,浏览器会将其解析出来,并将其放入函数体中,然后将其作为onClick函数附加到submit按钮的DOM节点。单击submit按钮时,将调用此函数。另外,要小心,因为这只会在单击submit按钮时触发。假设表单中有一个文本框,用户按enter键-onclick不会触发。也许看看@user878729:您可能还想知道onclick为什么会这样工作。当您在HTML中以字符串形式提供return show\u confirm时,浏览器会将其解析出来,并将其放入函数体中,然后将其作为onClick函数附加到submit按钮的DOM节点。单击submit按钮时,将调用此函数。另外,要小心,因为这只会在单击submit按钮时触发。假设表单中有一个文本框,用户按enter键-onclick不会触发。也许调查一下