【问题标题】:Delete Comment popup删除评论弹出窗口
【发布时间】:2011-06-01 15:28:42
【问题描述】:

我想弹出一个确认/取消 div,当我的用户单击我的提要中的删除按钮时,我可以在其中设置样式。但我所拥有的不起作用。而且我想知道它是否是因为我在 delete.php 中没有任何内容可以告诉它将其引导到弹出窗口中。它只是转到 delete.php 页面 atm。有人可以给我一些指导吗?

Javascript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/JavaScript">

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

按钮:

 echo '<a href="mysite/raw/sn-extend/theme/default/delete.php?id='.$streamitem_data['streamitem_id'].'" onClick="confirmDelete(); alt="Delete" title="Delete" class="delete">X</a>&nbsp;&nbsp;&nbsp;&nbsp;';

【问题讨论】:

  • 为什么confirmDelete 不只是return confirm(...);
  • 我不确定,是否必须在 onClick="confirmDelet(MY_LINK); 之间添加链接?
  • 可能只是问题中的一个错字,但您在回显以创建链接的字符串中的 onClick="confirmDelete() 之后缺少一个 "。

标签: javascript php popup


【解决方案1】:
  • 你需要returnconfirmDelete返回的值。
  • 属性是onclick,而不是onClick
  • 属性缺少右引号。

JavaScript

function confirmDelete(){
    return confirm("Are you sure you want to delete this file?");
}

PHP

echo '<a ... onclick="return confirmDelete();" ...';

也就是说,看起来您正在使用 jQuery(尽管是一个超级旧的版本)。如果确实如此,使用 jQuery 并开始编写 unobtrusive JavaScript

$(function ()
{
    $('a.delete').click(confirmDelete);
});

也为自己准备一个相当新的 jQuery 版本。

【讨论】:

  • 我把它放在 php 文件中对吗?还是“必须”在 html 文件中?
  • 我不明白这个问题。 PHP 生成 HTML。我发布的 jQuery sn-p 是 JavaScript,既不是 PHP 也不是 HTML。
  • 您声明该属性缺少右引号,当我添加它时,它会在返回 true 旁边抛出一个红色错误;因为我相信结束语在最后。
  • 您可以在php和html页面的顶部添加javascipt对吗?
【解决方案2】:

这与 jQuery 无关,但无论如何你都可以这样做:

<script>
function confirmDelete(idPassed){

  if (confirm("Are you sure you want to delete this file?"))
    window.location = "mysite/raw/sn-extend/theme/default/delete.php?id=" + idPassed;

 }
</script>

<a href="javascript:void(0);" onClick="confirmDelete('<?php echo $streamitem_data['streamitem_id']; ?>');" alt="Delete" title="Delete" class="delete">X</a>

【讨论】: