使用 confirm 弹出对话框,点击取消为什么还执行代码了?

2015-03-25 11:01:55 +08:00
 koohik
举个简单的例子
<script type="text/javascript" language="javascript">
<!--
<script type="text/javascript" language="javascript">
function confirmAct()
{
if(confirm('确定要执行此操作吗?'))
{
return true;
}
return false;
}
//-->
</script>
<?php
$filename = 'file.txt';
// 写入的字符
$word = $_REQUEST['id'];
if(!empty($word)){
file_put_contents($filename, $word."\r\n",FILE_APPEND);
}
?>
<a href="t1.php?id=123" onclick="return confirmAct();">设置</a>
明明点击取消了,还依然往file.txt写入数据了?是什么原因呢
5214 次点击
所在节点    问与答
8 条回复
panlilu
2015-03-25 11:04:47 +08:00
额。。你把前后台弄混了,js的是前台的,php是后台的,而你的代码里面这两者几乎没有关联。。
koohik
2015-03-25 11:06:37 +08:00
代码保存t1.php试试看
上面多谢了一个script头,删掉
chaojie
2015-03-25 11:06:40 +08:00
preventDefault/stopPropagation/returnValue/cancelBubble
你需要找到一个兼容全浏览器的方法
koohik
2015-03-25 11:06:52 +08:00
@panlilu 代码保存t1.php试试看
上面多谢了一个script头,删掉
kisshere
2015-03-25 11:09:27 +08:00
preventDefault或者在confirm里面用location.href
koohik
2015-03-25 11:28:35 +08:00
@kisshere 可不可以直接写在onclick里面?
lincanbin
2015-03-25 11:30:22 +08:00
这样写Onclick的返回值并不会拦截跳转操作,建议把跳转操作写函数里
jookr
2015-03-25 16:45:11 +08:00
1、复杂写法(带判断的,可以同时实现多种行为的判断):
  onclick="{if(confirm('确定要删除记录吗?')){return true;}return false;}"
  
  2、简洁写法
<a href="javascript:void(0);" onClick="return(confirm('确定要删除吗?'))">设置</a>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179221

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX