html pilih hanya satu kotak centang dalam grup

125

Jadi bagaimana saya hanya mengizinkan pengguna untuk memilih hanya satu kotak centang?

Saya tahu tombol radio "ideal", tetapi untuk tujuan saya ... tidak.

Saya memiliki bidang di mana pengguna harus memilih salah satu atau dari dua opsi, tetapi tidak keduanya. Masalahnya adalah saya ingin pengguna saya juga dapat membatalkan pilihan mereka, dan di sinilah tombol radio gagal karena setelah Anda memilih grup, Anda harus memilih opsi.

Saya akan memvalidasi info melalui php, tetapi saya masih ingin membatasi pengguna ke satu jawaban jika mereka ingin memberikannya.

pengguna962449
sumber
1
Dengan HTML saja, ini tidak dapat dilakukan. Anda membutuhkan JavaScript. Jika Anda terbuka untuk jQuery, saya dapat memberi Anda solusi cepat.
Surreal Dreams
12
Bagaimana dengan tombol radio tambahan berlabel "tidak ada"?
FelipeAls
2
opsi ke-3 tidak cocok dengan desain saya ... alternatif yang bagus :)
user962449
2
Kotak centang dengan satu pilihan sebenarnya adalah tombol radio. Tidakkah ini akan mengejutkan pengguna?
Gherman
@Surreal Dreams Ini bisa dilakukan dalam HTML, lihat jawaban saya. Namun dalam kebanyakan kasus, JS itu lebih sederhana dan tidak perlu diretas.
SamGoody

Jawaban:

179

Cuplikan ini akan:

  • Izinkan pengelompokan seperti tombol Radio
  • Bertindak seperti Radio
  • Izinkan batal memilih semua

// the selector will match all input controls of type :checkbox
// and attach a click event handler 
$("input:checkbox").on('click', function() {
  // in the handler, 'this' refers to the box clicked on
  var $box = $(this);
  if ($box.is(":checked")) {
    // the name of the box is retrieved using the .attr() method
    // as it is assumed and expected to be immutable
    var group = "input:checkbox[name='" + $box.attr("name") + "']";
    // the checked state of the group/box on the other hand will change
    // and the current value is retrieved using .prop() method
    $(group).prop("checked", false);
    $box.prop("checked", true);
  } else {
    $box.prop("checked", false);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<div>
  <h3>Fruits</h3>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[1][]" />Kiwi</label>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[1][]" />Jackfruit</label>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[1][]" />Mango</label>
</div>
<div>
  <h3>Animals</h3>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[2][]" />Tiger</label>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[2][]" />Sloth</label>
  <label>
    <input type="checkbox" class="radio" value="1" name="fooby[2][]" />Cheetah</label>
</div>

bPratik
sumber
3
Penggunaan yang benar akan menggunakan $ (this) .is (": checked") the "is" untuk memeriksa apakah kotak centang sedang diperiksa di if {...} else {...} di sini ... jsfiddle .net / zGEaa / 31
sergioadh
2
Perhatikan bahwa .attr tidak lagi berfungsi, gunakan .prop ("dicentang") sebagai gantinya untuk versi jQuery yang lebih baru
user871784
@ user871784 - Terima kasih atas perhatiannya ... Saya telah memperbarui biolanya!
bPratik
3
Anda melewatkan pemilih radio: $ ("input: checkbox.radio")
Sven
@Sven - Ini akan menjadi pemilih yang terlalu spesifik dalam contoh ini. Karena itu jika halaman berisi sekumpulan kotak centang lain yang seharusnya tidak memiliki perilaku ini, menggunakan .radiopemilih akan membantu. Terima kasih telah menunjukkannya :)
bPratik
101

Anda ingin mengikat change()penangan sehingga kejadian akan diaktifkan ketika status kotak centang berubah. Kemudian, hapus saja semua kotak centang selain yang memicu penangan:

$('input[type="checkbox"]').on('change', function() {
   $('input[type="checkbox"]').not(this).prop('checked', false);
});

Ini biola


Untuk pengelompokan, jika kotak centang Anda "grup" semuanya bersaudara:

<div>
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>  
<div>
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>   
<div>
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>

Anda bisa melakukan ini:

$('input[type="checkbox"]').on('change', function() {
   $(this).siblings('input[type="checkbox"]').prop('checked', false);
});

Ini biola lain


Jika kotak centang Anda dikelompokkan berdasarkan atribut lain, seperti name:

<input type="checkbox" name="group1[]" />
<input type="checkbox" name="group1[]" />
<input type="checkbox" name="group1[]" />

<input type="checkbox" name="group2[]" />
<input type="checkbox" name="group2[]" />
<input type="checkbox" name="group2[]" />

<input type="checkbox" name="group3[]" />
<input type="checkbox" name="group3[]" />
<input type="checkbox" name="group3[]" />

Anda bisa melakukan ini:

$('input[type="checkbox"]').on('change', function() {
    $('input[name="' + this.name + '"]').not(this).prop('checked', false);
});

Ini biola lain

billyonecan.dll
sumber
Saya suka kode (terakhir) Anda. Sangat singkat dan masih jelas. Saya tidak yakin apakah on 'change' akan aktif saat Anda mengubah kotak centang lainnya, tetapi tidak saat saya mencobanya. Jadi saya lebih suka kode Anda. Terima kasih! :)
Frank Fajardo
Saya sangat suka ini, saya harus melakukan sedikit penyesuaian untuk kebutuhan saya. Saya memiliki dua item jadi item pertama dicentang secara default dan jika tidak dicentang, item kedua menjadi dicentang. Ini membantu saya memulai.
john.weland
Hai @ john.weland - apakah maksud Anda sesuatu seperti ini ?
billyonecan
@billyonecan hampir persis tetapi dengan kemampuan untuk menargetkan pengelompokan tertentu. seperti ini . Terima kasih
john.weland
2
ditambah satu untuk kesederhanaan
Chad
26

Tombol radio sangat ideal. Anda hanya perlu opsi ketiga "tidak ada" yang dipilih secara default.

Quentin
sumber
1
Itu solusi yang bagus, tetapi saya lebih memilih menggunakan kotak centang karena desain saya tidak ideal untuk opsi ketiga.
pengguna962449
6
Saya sangat menyarankan untuk mengubah desain. Centang 0 atau 1 dari 2 opsi ini bukanlah pola umum dan tidak akan seintuitif bagi pengguna seperti Centang 1 dari 3 opsi ini
Quentin
4
mengapa saya harus mengubah seluruh desain saya untuk 2 kotak centang?
pengguna962449
9
Jika perubahan seperti itu mengharuskan Anda untuk mengubah "seluruh desain Anda", itu menunjukkan bahwa desain itu terlalu tidak fleksibel pada awalnya.
Quentin
10
Ini tidak tidak fleksibel, hanya terlihat tidak benar ... Ini mungkin terlihat bagus pada formulir dan aplikasi semacam itu, tetapi kami memiliki penggunaan yang berbeda untuk kotak centang kami.
pengguna962449
13

Sudah ada beberapa jawaban untuk ini berdasarkan JS murni tetapi tidak ada yang cukup ringkas seperti yang saya inginkan.

Berikut adalah solusi saya berdasarkan penggunaan tag nama (seperti pada tombol radio) dan beberapa baris javascript.

function onlyOne(checkbox) {
    var checkboxes = document.getElementsByName('check')
    checkboxes.forEach((item) => {
        if (item !== checkbox) item.checked = false
    })
}
<input type="checkbox" name="check" onclick="onlyOne(this)">
<input type="checkbox" name="check" onclick="onlyOne(this)">
<input type="checkbox" name="check" onclick="onlyOne(this)">
<input type="checkbox" name="check" onclick="onlyOne(this)">

Evertvdw
sumber
Terima kasih, yang ini melakukannya untuk saya dari yang lainnya =)
kaya
6
$("#myform input:checkbox").change(function() {
    $("#myform input:checkbox").attr("checked", false);
    $(this).attr("checked", true);
});

Ini harus berfungsi untuk sejumlah kotak centang di formulir. Jika Anda memiliki orang lain yang bukan bagian dari grup, siapkan penyeleksi input yang berlaku.

Mimpi Nyata
sumber
ya pak :) Tidak apa-apa, saya menemukan sesuatu yang berhasil untuk saya, meskipun solusi Anda terlihat cukup sederhana. Saya mungkin melakukan sesuatu yang salah di pihak saya. Terima kasih.
pengguna962449
5

Berikut adalah solusi HTML dan JavaScript sederhana yang saya sukai:

// js berfungsi untuk memungkinkan hanya memeriksa kotak centang satu hari kerja pada satu waktu:

function checkOnlyOne(b){

var x = document.getElementsByClassName('daychecks');
var i;

for (i = 0; i < x.length; i++) {
  if(x[i].value != b) x[i].checked = false;
}
}


Day of the week:
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Monday" />Mon&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Tuesday" />Tue&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Wednesday" />Wed&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Thursday" />Thu&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Friday" />Fri&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Saturday" />Sat&nbsp;&nbsp;&nbsp;
<input class="daychecks" onclick="checkOnlyOne(this.value);" type="checkbox" name="reoccur_weekday" value="Sunday" />Sun&nbsp;&nbsp;&nbsp;<br /><br />
Ian dari Jafty.com
sumber
4

Semoga kode ini membantu Anda.

$(document).ready(function(){
$('.slectOne').on('change', function() {
   $('.slectOne').not(this).prop('checked', false);
   $('#result').html($(this).data( "id" ));
   if($(this).is(":checked"))
   	$('#result').html($(this).data( "id" ));
   else
   	$('#result').html('Empty...!');
});
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

</head>
<body>
<input type="checkbox" class="slectOne" data-id="1 selected"/>
<input type="checkbox" class="slectOne" data-id="2 selected"/>
<input type="checkbox" class="slectOne" data-id="3 selected"/>
<input type="checkbox" class="slectOne" data-id="4 selected"/>
<input type="checkbox" class="slectOne" data-id="5 selected"/>
<input type="checkbox" class="slectOne" data-id="6 selected"/>
<input type="checkbox" class="slectOne" data-id="7 selected"/>
<input type="checkbox" class="slectOne" data-id="8 selected"/>
<input type="checkbox" class="slectOne" data-id="9 selected"/>
<input type="checkbox" class="slectOne" data-id="10 selected"/>
<span id="result"></span>
</body>
</html>

Tautan kerja Klik di sini

Om Shankar
sumber
3

Berdasarkan jawaban billyonecan , Anda dapat menggunakan kode berikut jika Anda memerlukan potongan itu untuk lebih dari satu kotak centang (dengan asumsi mereka memiliki nama yang berbeda).

    $('input.one').on('change', function() {
        var name = $(this).attr('name');
        $('input[name='+name+'].one').not(this).prop('checked', false);
    }); 
tcastrog10
sumber
3

Meskipun JS mungkin cara yang tepat, itu bisa dilakukan hanya dengan HTML dan CSS.

Di sini Anda memiliki tombol radio palsu yang sebenarnya merupakan label untuk tombol radio yang benar-benar tersembunyi. Dengan melakukan itu, Anda mendapatkan efek yang Anda butuhkan.

<style>
   #uncheck>input { display: none }
   input:checked + label { display: none }
   input:not(:checked) + label + label{ display: none } 
</style>

<div id='uncheck'>
  <input type="radio" name='food' id="box1" /> 
  Pizza 
    <label for='box1'>&#9678;</label> 
    <label for='box0'>&#9673;</label>
  <input type="radio" name='food' id="box2" /> 
  Ice cream 
    <label for='box2'>&#9678;</label> 
    <label for='box0'>&#9673;</label>
  <input type="radio" name='food' id="box0" checked />
</div>

Lihat di sini: https://jsfiddle.net/tn70yxL8/2/

Sekarang, itu mengasumsikan Anda membutuhkan label yang tidak dapat dipilih.

Jika Anda ingin menyertakan label, secara teknis Anda dapat menghindari pengulangan label "hapus centang" dengan mengubah teksnya di CSS, lihat di sini: https://jsfiddle.net/7tdb6quy/2/

SamGoody
sumber
1

Contoh Dengan AngularJs

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  <script>
    angular.module('app', []).controller('appc', ['$scope',
      function($scope) {
        $scope.selected = 'other';
      }
    ]);
  </script>
</head>

<body ng-app="app" ng-controller="appc">
  <label>SELECTED: {{selected}}</label>
  <div>
    <input type="checkbox" ng-checked="selected=='male'" ng-true-value="'male'" ng-model="selected">Male
    <br>
    <input type="checkbox" ng-checked="selected=='female'" ng-true-value="'female'" ng-model="selected">Female
    <br>
    <input type="checkbox" ng-checked="selected=='other'" ng-true-value="'other'" ng-model="selected">Other
  </div>



</body>

</html>

DAS
sumber
1

Dengan javascript lama biasa.

<html>
<head>
</head>
<body>
<input type="checkbox" name="group1[]" id="groupname1" onClick="toggle(1,'groupname')"/>
<input type="checkbox" name="group1[]" id="groupname2" onClick="toggle(2,'groupname')"  />
<input type="checkbox" name="group1[]" id="groupname3" onClick="toggle(3,'groupname')" />

<input type="checkbox" name="group2[]" id="diffGroupname1" onClick="toggle(1,'diffGroupname')"/>
<input type="checkbox" name="group2[]" id="diffGroupname2" onClick="toggle(2,'diffGroupname')"  />
<input type="checkbox" name="group2[]" id="diffGroupname3" onClick="toggle(3,'diffGroupname')" />
<script>
function toggle(which,group){
var counter=1;
var checkbox=document.getElementById(group+counter);
while(checkbox){
if(counter==which){

}else{
checkbox.checked=false;
}
counter++;
checkbox=document.getElementById(group+counter);
}
}
</script>
</body>
</html>

edit: juga mungkin

<html>
<head>
</head>
<body>
<input type="checkbox" name="group1[]" class="groupname" onClick="toggle(this,'groupname')"/>
<input type="checkbox" name="group1[]" class="groupname" onClick="toggle(this,'groupname')"  />
<input type="checkbox" name="group1[]" class="groupname" onClick="toggle(this,'groupname')" />

<input type="checkbox" name="group2[]" class="diffGroupname" onClick="toggle(this,'diffGroupname')"/>
<input type="checkbox" name="group2[]" class="diffGroupname" onClick="toggle(this,'diffGroupname')"  />
<input type="checkbox" name="group2[]" class="diffGroupname" onClick="toggle(this,'diffGroupname')" />
<script>
function toggle(which,theClass){
var checkbox=document.getElementsByClassName(theClass);
for(var i=0;i<checkbox.length;i++){
if(checkbox[i]==which){

}else{
checkbox[i].checked=false;
}
}
}
</script>
</body>
</html>
Solomon P Byer
sumber
0

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  <script>
    angular.module('app', []).controller('appc', ['$scope',
      function($scope) {
        $scope.selected = 'male';
      }
    ]);
  </script>
</head>

<body ng-app="app" ng-controller="appc">
  <label>SELECTED: {{selected}}</label>
  <div>
    <input type="checkbox" ng-checked="selected=='male'" ng-true-value="'male'" ng-model="selected">Male
    <br>
    <input type="checkbox" ng-checked="selected=='female'" ng-true-value="'female'" ng-model="selected">Female
    <br>
    <input type="checkbox" ng-checked="selected=='other'" ng-true-value="'other'" ng-model="selected">Other
  </div>
</body>
</html>

Mahesh
sumber
0

Jika seseorang membutuhkan solusi tanpa perpustakaan javascript eksternal, Anda dapat menggunakan contoh ini. Sekelompok kotak centang yang memungkinkan nilai 0..1. Anda dapat mengklik komponen kotak centang atau teks label terkait.

    <input id="mygroup1" name="mygroup" type="checkbox" value="1" onclick="toggleRadioCheckbox(this)" /> <label for="mygroup1">Yes</label>
    <input id="mygroup0" name="mygroup" type="checkbox" value="0" onclick="toggleRadioCheckbox(this)" /> <label for="mygroup0">No</label>

- - - - - - - - 

    function toggleRadioCheckbox(sender) {
        // RadioCheckbox: 0..1 enabled in a group 
        if (!sender.checked) return;
        var fields = document.getElementsByName(sender.name);
        for(var idx=0; idx<fields.length; idx++) {
            var field = fields[idx];
            if (field.checked && field!=sender)
                field.checked=false;
        }
    }
Siapa
sumber
0

Versi saya: gunakan atribut data dan Vanilla JavaScript

<div class="test-checkbox">
    Group One: <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupOne" value="Eat" />Eat</label>
    <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupOne" value="Sleep" />Sleep</label>
    <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupOne" value="Play" />Play</label>
    <br />
    Group Two: <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupTwo" value="Fat" />Fat</label>
    <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupTwo" value="Comfort" />Comfort</label>
    <label>
        <input type="checkbox" data-limit="only-one-in-a-group" name="groupTwo" value="Happy" />Happy</label>
</div>
<script>
    let cbxes = document.querySelectorAll('input[type="checkbox"][data-limit="only-one-in-a-group"]');
    [...cbxes].forEach((cbx) => {
        cbx.addEventListener('change', (e) => {
            if (e.target.checked)
                uncheckOthers(e.target);
        });
    });
    function uncheckOthers (clicked) {
        let name = clicked.getAttribute('name');
        // find others in same group, uncheck them
        [...cbxes].forEach((other) => {
            if (other != clicked && other.getAttribute('name') == name)
                other.checked = false;
        });
    }
</script>
benbai123
sumber
-1

Necromancing:
Dan tanpa jQuery, untuk struktur kotak centang seperti ini:

<label>
<input type="checkbox" id="mytrackers_1" name="blubb_1" value="">--- Bitte ausw&#228;hlen ---
</label>
<label>
<input type="checkbox" id="mytrackers_2" name="blubb_2" value="7">Testtracker
</label>
<label>
<input type="checkbox" id="mytrackers_3" name="blubb_3" value="3">Kundenanfrage
</label>
<label>
<input type="checkbox" id="mytrackers_4" name="blubb_4" value="2">Anpassung
</label>
<label>
<input type="checkbox" id="mytrackers_5" name="blubb_5" value="1" checked="checked" >Fehler
</label>
<label>
<input type="checkbox" id="mytrackers_6" name="blubb_6" value="4">Bedienung
</label>
<label>
<input type="checkbox" id="mytrackers_7" name="blubb_7" value="5">Internes
</label>
<label>
<input type="checkbox" id="mytrackers_8" name="blubb_8" value="6">&#196;nderungswunsch
</label>

Anda akan melakukannya seperti ini:

    /// attach an event handler, now or in the future, 
    /// for all elements which match childselector,
    /// within the child tree of the element maching parentSelector.
    function subscribeEvent(parentSelector, eventName, childSelector, eventCallback) {
        if (parentSelector == null)
            throw new ReferenceError("Parameter parentSelector is NULL");
        if (childSelector == null)
            throw new ReferenceError("Parameter childSelector is NULL");
        // nodeToObserve: the node that will be observed for mutations
        var nodeToObserve = parentSelector;
        if (typeof (parentSelector) === 'string')
            nodeToObserve = document.querySelector(parentSelector);
        var eligibleChildren = nodeToObserve.querySelectorAll(childSelector);
        for (var i = 0; i < eligibleChildren.length; ++i) {
            eligibleChildren[i].addEventListener(eventName, eventCallback, false);
        } // Next i 
        // /programming/2712136/how-do-i-make-this-loop-all-children-recursively
        function allDescendants(node) {
            if (node == null)
                return;
            for (var i = 0; i < node.childNodes.length; i++) {
                var child = node.childNodes[i];
                allDescendants(child);
            } // Next i 
            // IE 11 Polyfill 
            if (!Element.prototype.matches)
                Element.prototype.matches = Element.prototype.msMatchesSelector;
            if (node.matches) {
                if (node.matches(childSelector)) {
                    // console.log("match");
                    node.addEventListener(eventName, eventCallback, false);
                } // End if ((<Element>node).matches(childSelector))
                // else console.log("no match");
            } // End if ((<Element>node).matches) 
            // else console.log("no matchfunction");
        } // End Function allDescendants 
        // Callback function to execute when mutations are observed
        var callback = function (mutationsList, observer) {
            for (var _i = 0, mutationsList_1 = mutationsList; _i < mutationsList_1.length; _i++) {
                var mutation = mutationsList_1[_i];
                // console.log("mutation.type", mutation.type);
                // console.log("mutation", mutation);
                if (mutation.type == 'childList') {
                    for (var i = 0; i < mutation.addedNodes.length; ++i) {
                        var thisNode = mutation.addedNodes[i];
                        allDescendants(thisNode);
                    } // Next i 
                } // End if (mutation.type == 'childList') 
                // else if (mutation.type == 'attributes') { console.log('The ' + mutation.attributeName + ' attribute was modified.');
            } // Next mutation 
        }; // End Function callback 
        // Options for the observer (which mutations to observe)
        var config = { attributes: false, childList: true, subtree: true };
        // Create an observer instance linked to the callback function
        var observer = new MutationObserver(callback);
        // Start observing the target node for configured mutations
        observer.observe(nodeToObserve, config);
    } // End Function subscribeEvent 


    function radioCheckbox_onClick() 
    { 
        // console.log("click", this);
        let box = this;
        if (box.checked) 
        {
            let name = box.getAttribute("name");
            let pos = name.lastIndexOf("_");
            if (pos !== -1) name = name.substr(0, pos);

            let group = 'input[type="checkbox"][name^="' + name + '"]';
            // console.log(group);
            let eles = document.querySelectorAll(group);
            // console.log(eles);
            for (let j = 0; j < eles.length; ++j) 
            {
                eles[j].checked = false;
            }
            box.checked = true;
        }
        else
            box.checked = false;
    }


    // /programming/9709209/html-select-only-one-checkbox-in-a-group
    function radioCheckbox()
    { 
        // on instead of document...
        let elements = document.querySelectorAll('input[type="checkbox"]')

        for (let i = 0; i < elements.length; ++i)
        {
            // console.log(elements[i]);
            elements[i].addEventListener("click", radioCheckbox_onClick, false);

        } // Next i 

    } // End Function radioCheckbox 


    function onDomReady()
    {
        console.log("dom ready");
        subscribeEvent(document, "click", 
            'input[type="checkbox"]', 
            radioCheckbox_onClick
        ); 

        // radioCheckbox();
    }

    if (document.addEventListener) document.addEventListener("DOMContentLoaded", onDomReady, false);
    else if (document.attachEvent) document.attachEvent("onreadystatechange", onDomReady);
    else window.onload = onDomReady;

    function onPageLoaded() {
        console.log("page loaded");
    }

    if (window.addEventListener) window.addEventListener("load", onPageLoaded, false);
    else if (window.attachEvent) window.attachEvent("onload", onPageLoaded);
    else window.onload = onPageLoaded;
Stefan Steiger
sumber
-1
//Here is a solution using JQuery    
<input type = "checkbox" class="a"/>one
    <input type = "checkbox" class="a"/>two
    <input type = "checkbox" class="a"/>three
    <script>
       $('.a').on('change', function() {
            $('.a').not(this).prop('checked',false);
    });
    </script>
Tabish Zaman
sumber