0

大家好,我目前正在使用 javascript 中的删除验证功能。这是我的代码。

  function confirmDelete(){
var agree = confirm("Are you sure you want to delete this file?");
  if(agree == true){
    return true
}
else{
return false;
}
}

警报对话框出现,但每当我按下“取消”按钮时,它仍然会删除表中的文件

这是我的 HTML:

<a href=".base_url()."main/delete?id=$row->id>"."<i class='icon-trash' rel = 'tooltip' title = 'Delete' id = 'delete' onClick = 'confirmDelete();'></i></a>";

顺便说一句,我正在使用 CodeIgniter,任何帮助都将不胜感激!多谢你们!:)

4

4 回答 4

1

因为 on click 应该在 中<a>,而不是<i>. 此外,您的功能可以简化,考虑confirm回报truefalse

function confirmDelete(){
    return confirm("Are you sure you want to delete this file?");
}
于 2013-08-01T02:36:09.470 回答
1

尝试在调用 javascript 函数的地方使用 return 语句。如下所示:

<a href=".base_url()."main/delete?id=$row->id>"."<i class='icon-trash' rel = 'tooltip'   title = 'Delete' id = 'delete' onClick = 'return confirmDelete();'></i></a>";
于 2013-08-01T03:22:03.300 回答
1

直接在你的标签里面做:

   <a href=".base_url()."main/delete?id=$row->id>"  OnClick="return confirm('Are you sure you want to delete this book?');"> Delete </a>
于 2013-08-01T02:51:18.497 回答
0

调用event.preventDefault(),如果返回 false 本身不会阻止浏览器操作。

您将需要获取对事件或window.event.. 的引用,这在某种程度上是特定于浏览器的。jQuery 或类似的可以帮助解决这个问题。

onclick="if (! confirm('Are you sure you want to delete this book?')) event.preventDefault();"

(虽然,在上面的例子中,我们不再返回“false”——理想情况下,我们将代码放在一个方法中,如果确认是否定的,则返回 false并阻止默认值。)

要测试它是否有效,最简单的是:

onclick="event.preventDefault();"

也可以看看:

返回 '​​false' 和e.preventDefault() will prevent the default event from occuring,e.stopPropagation()` 之间的区别防止它冒泡/向外和外部默认值发生,但返回 'false' 并不能阻止它冒泡。

所以也许将onclick处理程序放在执行默认操作的链接上会更好?

于 2013-08-01T02:56:56.863 回答