繁体   English   中英

如何取消选中复选框

[英]How to uncheck the checked box

如果选中了另一个复选框,则如何取消选中该复选框。

有人可以帮忙。

谢谢。

<?php

//limit for number of categories displayed per page
$limit = 4;

$categoriesNum= mysql_query("SELECT COUNT('categoryTopic') FROM categories");   

//number of current page
$page =(isset($_GET['page']))? (int) $_GET['page'] :1;

//calculate the current page number 
$begin =($page - 1)* $limit; 

//number of pages needed. 
$pagesCount =ceil(mysql_result ($categoriesNum,0)/$limit);

//Query up all the Categories with setting the Limit 
$CategoryQuery = mysql_query ("SELECT categoryTopic From categories ORDER BY categoryTopic LIMIT $begin, $limit");

//Place all categories in an array then loop through it displaying them one by one
while ($query_rows = mysql_fetch_assoc($CategoryQuery))
{

    $category =$query_rows['categoryTopic'];  
    //echo $category; 
    //query all the subcategories that the current category has 
    $Sub = mysql_query ("SELECT categoryTopic FROM subcategories WHERE categoryTopic='$category'");             
    $Count = mysql_num_rows ($Sub); 

    echo  '<table width="85%" border="1"  cellpadding="0"; cellspacing="0" align="center">

    <tr>        
        <th width="23%" height="44" scope="col" align="left"> '.$query_rows['categoryTopic'].' <br><br><br></th>
        <th width="24%" scope="col">'.$Count.'</th>
        <th width="25%" scope="col"> 0 </th>
        <th width="28%" scope="col"> <form  name = "choose">
        <label><input type="checkbox" id ="check" value= '.$category.' onchange="handleChange(this);"></label>
    </tr>
</table>';  
}
?> 

<script type="text/jscript">
//this funciton will be called when user checks a check box. 

function handleChange(cb) {
//get the selected category 
var category = cb.value;

如果选择另一个,则得到新的值,但同时选中两个框。

如果一次只希望检查一个,则单选按钮似乎是一个更好的选择,尽管如果一次只希望检查一个或零,则可以使用复选框。

您的代码当前正在生成无效的html,因为它为每个复选框提供了相同的id 同样,您似乎在每行上都创建了开头的<form>标记,而没有匹配</form>标记。

如果为每个复选框提供一个通用的class属性:

<input type="checkbox" class="check" value= '.$category.' onchange="handleChange(this);">

...然后您的JS可以使用.getElementsByClassName()来处理所有内容,并取消选中除已检查的内容之外的所有内容:

function handleChange(cb) {
    var cbs = document.getElementsByClassName("check");
    for (var i = 0; i < cbs.length; i++)
        if (cbs[i] != cb)
            cbs[i].checked = false;
}

演示: http//jsfiddle.net/33Gqu/

注意:对于要提交的选定值,您需要为复选框提供一个name属性-与id不同,可以为多个元素重复name

不要使用复选框,不要使用单选按钮,并给它们取相同的name

使用单选按钮?

<input type="radio" name="NAME" />

您希望彼此影响的所有单选按钮上的NAME相同。

旁注:您当前的代码无效,因为它会产生多个具有相同ID的元素( check )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM