簡體   English   中英

如何從復選框列表中僅選中一個復選框

[英]How to verify only one checkbox is selected from checkbox list

在這里,我正在從數據庫中檢索數據,並且正在使用checkbox進行數據的插入,更新和刪除。我的問題是當我單擊兩個以上的復選框時,我也將移動到update.php頁面,但是我真正想要的是當我首先單擊更新按鈕,它將檢查是否僅從列表中選擇了一個復選框,如果警告消息不應該像僅選擇一個復選框那樣顯示,則將進行檢查。 請有所幫助。在此先感謝我輸入了我的代碼。

<!DOCTYPE html>
<html>
<head>
    <title>Insert Update Delete</title>
</head>
<body>
<form name="dataform" id="data" action="" method="get">
<?php
$connection = mysql_connect("localhost", "root", "");
$db = mysql_select_db("db_new", $connection);
$query=mysql_query("select * from student_info");
echo "<table>";
while($row=mysql_fetch_array($query))
{
    echo "<tr>";
    echo "<td>"; ?> <input type="checkbox" id="box" name="num[]" class="other" value="<?php echo $row["id"];?>" /> <?php echo "</td>";
    echo "<td>"; echo $row["roll_no"]; echo "</td>";
    echo "<td>"; echo $row["name"]; echo "</td>";
    echo "<td>"; echo $row["division"]; echo "</td>";
    echo "<td>"; echo $row["std"]; echo "</td>";
    echo "<td>"; echo $row["gender"]; echo "</td>";
    echo "<td>"; echo $row["subject"]; echo "</td>";
    echo "</tr>";
}
echo "</table>";
?>
    <input type="submit" name="insert" value="insert"/>
    <input type="submit" name="update" value="update"/>
    <input type="submit" name="delete" value="delete"/>
    </div>
</form>
<?php
if(isset($_GET["insert"]))
{
    $box = $_GET['num'];
    $count =count($box);
    if ($count == 0){
        header('Location:insert.php');
    }
    elseif($count == 1){
        header('Location:data.php');
    }
}
?>
<?php
if (isset($_GET['update'])){
    $box = $_GET['box'];
    $count =count($box);
    if($count == 0) {
        header('Location:data.php');
    }elseif($count == 1){
        header('Location:update.php');
    }
    if(!empty($_GET['num'])) {
        foreach($_GET['num'] as $id) {
            echo $id;
            header("location:update.php?id=".$id);
        }
    }
}

?>
<?php
if (isset($_GET['delete'])) {
    $box = $_GET['num'];
    $count = count($box);
    if($count == 0) {
        header('Location:data.php');
    }elseif($count == 1){
        header('Location:data.php');
    }
    if(!empty($_GET['num'])) {
        foreach($_GET['num'] as $id) {
            mysql_query("delete from student_info where id = $id");
        }
    }
}
?>
</body>
</html>

您可以為此使用單選按鈕,而不要使用復選框。

在這里查看示例

使用單選而不是復選框

或者,如果您必須使用復選框,請執行以下操作:

$('input.example').on('change', function() {
    $('input.example').not(this).prop('checked', false);  
});

我將使用單選按鈕,但是我不知道您的情況,因此這是使用jQuery的解決方案。 你要選擇所有的復選框的checked ,然后看看是否是數組的長度大於一。 這是您需要的javascript代碼和jsbin(如果您要查看的話)。

http://jsbin.com/qakuzajaza/edit?js,輸出

$("#submitbutton").click(function() {

  var count = $("input[type=checkbox]:checked").length;
  if (count > 1) {
    alert("Only 1 can be selected");
  } else {
    // submit data
  }

});
 1. Try this, it will not allow you to check only one checkbox at a time.

    $(document).ready(function () {
            $('input[type=checkbox]').click(function () {
                var chks = document.getElementById('#ckeckboxlistId').getElementsByTagName('INPUT');
                for (i = 0; i < chks.length; i++) {
                    chks[i].checked = false;
                }
                if (chks.length > 1)
                    $(this)[0].checked = true;
            });
        });

這些方法或多或少相似。 嘗試這個:

submitForm(); //according to an event you prefer (click some button or anchor , no button over $ .ajaks.
function submitForm(){
    var tag = document.getElementById("tdForm");
    var chkbx = $(tag).find("input[type='checkbox']:checked").length;
    if (chkbx !== 0) {
        if (chkbx > 1) {
            alert("more then 1");
        }else{
            alert("form submited"); //$(tag).submit();
        }
    }else{
        if (chkbx === 0) {
            alert("nothing cecked");
        }
    }
};

經過測試的作品適合我。 希望能幫助到你! 雖然我認為單選按鈕或以前的驗證,以及在填寫表格的規則上攔截錯誤,但這些費用要便宜得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM