1

就像标题说的那样,我对复选框验证有疑问。所以,我的 php 文件中有这行显示用户。

<a href='#' onclick='if(confirm("Are you sure?"))checkbox.submit()' class='bt_red'><span class='bt_red_lft'></span><strong>Delete items</strong><span class='bt_red_r'></span></a>

在我的 delete_items.php 文件中,我写了以下内容:

$checkbox = $_REQUEST['checkbox'];
if(!isset($checkbox)) {
//diplay an error message :"No user selected"
} else {
if(isset($checkbox)) {
// deleting users script
}
}

在这两种情况下,当单击“删除项目”时,我收到了 javascript 确认消息,当没有设置复选框时我不想显示该消息(if(!isset($checkbox)) 语句)。

谢谢你的帮助。

4

2 回答 2

0

首先,您的代码中有很多模棱两可的行。同样的事情可以这样做

if(!isset($_REQUEST['checkbox'])) {
  //diplay an error message :"No user selected"
} else  {
  //delete user's script
}

如果您不想要确认消息(如果没有checkbox设置),那么您可以这样做:

<?php if(isset($_REQUEST['checkbox'])) {
        echo '<a href="#" onclick="if(confirm(\"Are you sure?\"))checkbox.submit()" class="bt_red">';
     } else {
        echo '<a href="#" class="bt_red">';
     }
?>
    <span class='bt_red_lft'></span>
    <strong>Delete items</strong>
    <span class='bt_red_r'></span>
</a>
于 2012-09-18T12:40:42.037 回答
0

您可能希望使链接 onclick 语句中的 javascript 代码知道已单击了多少复选框。这很容易。如果您使用 Jquery,您可以像这样查询它们:

$("input[type=checkbox]:checked").size();

这只是评估页面上任何地方检查了多少复选框,因此您必须使用父元素或类或其他东西缩小查询范围。

当您选中复选框的数量时,它只是一些 AND 和 OR 的问题,如下所示:

$("input[type=checkbox]:checked").size() > 0 && (confirm("do you really want to do this?"));

如果有选中的复选框,则第一个表达式的计算结果为 true,因此第二个表达式被计算,否则不计算。

希望这可以帮助

编辑:您也可以使用 if 而不是 or。也许这有点熟悉

于 2012-09-18T13:04:21.817 回答