V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
koohik
V2EX  ›  问与答

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

  •  
  •   koohik · 2015-03-25 11:01:55 +08:00 · 4994 次点击
    这是一个创建于 3292 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个简单的例子
    <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写入数据了?是什么原因呢
    8 条回复    2015-03-25 16:45:11 +08:00
    panlilu
        1
    panlilu  
       2015-03-25 11:04:47 +08:00
    额。。你把前后台弄混了,js的是前台的,php是后台的,而你的代码里面这两者几乎没有关联。。
    koohik
        2
    koohik  
    OP
       2015-03-25 11:06:37 +08:00
    代码保存t1.php试试看
    上面多谢了一个script头,删掉
    chaojie
        3
    chaojie  
       2015-03-25 11:06:40 +08:00
    preventDefault/stopPropagation/returnValue/cancelBubble
    你需要找到一个兼容全浏览器的方法
    koohik
        4
    koohik  
    OP
       2015-03-25 11:06:52 +08:00
    @panlilu 代码保存t1.php试试看
    上面多谢了一个script头,删掉
    kisshere
        5
    kisshere  
       2015-03-25 11:09:27 +08:00 via Android
    preventDefault或者在confirm里面用location.href
    koohik
        6
    koohik  
    OP
       2015-03-25 11:28:35 +08:00
    @kisshere 可不可以直接写在onclick里面?
    lincanbin
        7
    lincanbin  
       2015-03-25 11:30:22 +08:00 via Android
    这样写Onclick的返回值并不会拦截跳转操作,建议把跳转操作写函数里
    jookr
        8
    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>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2813 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:49 · PVG 22:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.