单击复选框时如何禁用页面重定向?

时间:2011-02-18 18:39:53

标签: javascript jquery html checkbox

我有这段代码:

<div onClick="$(location).attr('href','updateUser.php?id=<?php echo $admin->id; ?>')" class="dbItem">
                <div class="dbItemCheckbox">
                  <input name="se8" type="checkbox" value="<?php echo $admin->id; ?>" />
                </div>
                <div class="dbItemMessageIconAdmin"><img src="images/admin.png" alt="" width="20" height="23" border="0" /></div>
                <div class="dpItemName"><?php echo $admin->username; ?></div>
                <div class="dpItemTitle"><?php echo $te; ?></div>
                <div style="left: 110px" class="dpItemDate"><?php echo $admin->registerDate; ?></div>
                <div class="dpItemDelete"><a href="editUsers.php?del=<?php echo $admin->id; ?>"><img src="images/delete.png" alt="" width="11" height="10" border="0" /></a></div>
              </div>

当用户点击DIV时,浏览器会转到更新页面。

我遇到的问题是当用户点击复选框以检查多重删除时,这也会转到更新页面。

当用户仅点击复选框时,我如何禁用此功能。

3 个答案:

答案 0 :(得分:0)

防止复选框上的事件冒泡。尝试这样的事情:

$(".dbItem INPUT[type='checkbox']").click(function(evt) {
    evt.stopPropagation();
});

答案 1 :(得分:0)

我能看到这样做的最简单方法是将onclick重新定位到另一个除了复选框之外的所有内容。像这样:

<div class="dbItem">
  <div class="dbItemCheckbox">
    <input name="se8" type="checkbox" value="<?php echo $admin->id; ?>" />
  </div>
  <div onClick="$(location).attr('href','updateUser.php?id=<?php echo $admin->id; ?>')" >
    <div class="dbItemMessageIconAdmin"><img src="images/admin.png" alt="" width="20" height="23" border="0" /></div>
    <div class="dpItemName"><?php echo $admin->username; ?></div>
    <div class="dpItemTitle"><?php echo $te; ?></div>
    <div style="left: 110px" class="dpItemDate"><?php echo $admin->registerDate; ?></div>
    <div class="dpItemDelete"><a href="editUsers.php?del=<?php echo $admin->id; ?>"><img src="images/delete.png" alt="" width="11" height="10" border="0" /></a></div>
  </div>
</div>

答案 2 :(得分:0)

在复选框的onclick属性中,要包含复选框的onclick处理程序的脚本部分(或外部javascript文件)。

$('input[name="se8"]').click(function(e){
    e.stopPropagation();
});