0

我有一个链接,当用户单击它时会显示一个确认框。如果用户点击是,那么它将引导他们到指定的页面,否则它会停留在同一页面上。这是我的链接和我的功能代码:

<script type='text/javascript'>
   function checkDelete(){
      var i = confirm("Are you sure you want to delete?");
      if(i){
         return true;
      }else{
         return false;
      }
   }
</script>
<a href="operation.php?action=delete&id=<?php echo $id?>" onclick='checkDelete'>Delete</a>

问题是即使我单击“否”或取消按钮,它也不会停留在同一页面上。它总是重定向到页面 operation.php。但是,如果我在 onclick 上编写内联 javascript 代码,它仍然可以正常工作。

4

4 回答 4

1

你有几个问题:

JavaScript 代码checkDelete只是引用变量checkDelete;它什么也不做。您可能打算调用它,并进一步返回调用它的结果:

// in onclick
return checkDelete();

您使用ifwithreturn语句是多余的。只需返回结果confirm

function checkDelete() {
    return confirm('...');
}

此时,您甚至可以内联它:

// in onclick
return confirm('...');

内联 JavaScript 通常是不受欢迎的。最好从 JavaScript 绑定事件处理程序。例如,如果您的链接的 ID 为delete_link,您可以使用:

// should only be run when delete_link exists
// (e.g. in a DOM ready handler or a script after delete_link)
// this code does not accommodate for older versions of Internet Explorer
document.getElementById('delete_link').addEventListener('click', function(e) {
    if(!confirm('...')) {
        e.preventDefault();
    }
}, false);
于 2012-06-05T04:00:59.160 回答
1

试试onclick="return checkDelete();"。当您尝试使用 JavaScript 时,使用适当的 JavaScript 表达式会有所帮助;)

同时,尝试改成checkDelete这样:

function checkDelete() {return confirm("Are you sure you want to delete?");}
于 2012-06-05T04:01:08.747 回答
1

尝试:

<a href="operation.php?action=delete&id=<?php echo $id?>" onclick='return checkDelete();'>Delete</a>

<script type='text/javascript'>
   function checkDelete(){
      var i = confirm("Are you sure you want to delete?");
      if(i){
         return true;
      }else{
         return false;
      }
   }
</script>
于 2012-06-05T04:01:51.837 回答
1

<a href=''>标签总是重定向到目标。返回false和取消操作的概念仅在您提交表单时适用。

于 2012-06-05T04:01:53.920 回答