从按钮单击弹出HTML

时间:2016-08-26 13:59:13

标签: html

我有一个网站,我想点击一个按钮,并有一个弹出窗口,以确认用户是否想要继续。我已经看到几个使用链接并且有某种弹出窗口的问题,但是没有一个带有弹出按钮的按钮。我尝试了一些东西,但它们不按我想要的方式工作。目前我有:

<p>Copy website files from MAFINFWWWPV02 to MAFINFWWWPV01</p>
<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()">
    <input type='hidden' name='action' value='CopyFiles'/>
    <p><input type='submit' name='submit' value='Copy Files'/></p>
</form>
<p id="demo"></p>

然后这个:

<script>
function myFunction()
{
    var x;
    if (confirm("Copy all files?") == true)
    {
        x = "You pressed OK!";/*Want this to run the .bat*/
    }
    else
    {
        x = "You pressed Cancel!";/*Want this to not run the .bat*/
    }
    document.getElementById("demo").innerHTML = x;
}

这将运行.bat文件。无论我是否单击“确定”或“取消”按钮,它都会执行此操作。我想单击“确定”并运行.bat或单击“取消”而不运行它。我不知道怎么阻止它跑。

我的代码中有一个switch($_REQUEST['action']),用于从页面上的按钮查找“操作”。对于此case,它执行此操作:

case 'CopyFiles':
$script = chr(92) . chr(92) . 'MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com\BatchFiles\CopyFiles.bat';
system('cmd /c ' . $script); echo " <br>";
break;

1 个答案:

答案 0 :(得分:2)

此处的点击事件位于表单

<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()">

当您点击表单中的任何时,它会触发该事件。我怀疑你想在 onsubmit 事件中想要它吗?:

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="myFunction()">

此外,您必须在confirm()响应后实际取消表单帖子。首先,在函数调用中添加return

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="return myFunction()">

然后你还想要使用&#34;防止默认&#34;的组合。并且&#34;返回false&#34;。像这样:

function myFunction(e)
{
    e.preventDefault(); // here
    var x;
    var response = confirm("Copy all files?");
    if (response == true)
    {
        x = "You pressed OK!";
    }
    else
    {
        x = "You pressed Cancel!";
    }
    document.getElementById("demo").innerHTML = x;
    return response; // and here
}

因此,如果confirm()响应为true,则函数返回true,表单将继续提交。否则,函数返回false,表单不提交。

请注意,当表单提交时,demo元素的更新将会消失,因为页面将刷新。