我有一个网站,我想点击一个按钮,并有一个弹出窗口,以确认用户是否想要继续。我已经看到几个使用链接并且有某种弹出窗口的问题,但是没有一个带有弹出按钮的按钮。我尝试了一些东西,但它们不按我想要的方式工作。目前我有:
<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;
答案 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
元素的更新将会消失,因为页面将刷新。