如何使用复选框取消选中清除单选按钮

时间:2013-08-23 07:45:04

标签: javascript

我试图通过取消选中复选框来清除单选按钮。我能够得到它的样本。但你有同样的设置在我的表格中不止一次。我想拥有可以在集合中使用的泛型方法。

有些人可以帮助我。这是我的代码。我想为此使用java脚本。

<html>
<head>
<script language="JavaScript">

function loopForm(form) {
    var cbResults = 'Checkboxes: ';
    var radioResults = 'Radio buttons: ';
    for (var i = 0; i < form.elements.length; i++ ) {
        if (form.elements[i].type == 'checkbox') {
            if (form.elements[i].checked == true) {
                cbResults += form.elements[i].value + ' ';
            }
        }
        if (form.elements[i].type == 'radio') {
            if (form.elements[i].checked == true) {
                radioResults += form.elements[i].value + ' ';
            }
        }
    }
    document.getElementById("cbResults").innerHTML = cbResults;
    document.getElementById("radioResults").innerHTML = radioResults;
}

function loopForm123(form) {

    for (var i = 0; i < form.elements.length; i++ ) {

        if (form.elements[i].type == 'checkbox') {
            if (form.elements[i].checked == true) {
                alert('insde for loop1');
                form.elements[i].checked == false;
                alert('insde for loop3');
            }
        }
        if (form.elements[i].type == 'radio') {
            if (form.elements[i].checked == true) {
                alert('insde for loop2');
                form.elements[i].checked == false;
                alert('insde for loop4');
            }
        }
    }

}

</script>
<body>
<form name="thisForm">
I like to program in:<p>
<input type="checkbox" value="PHP" >PHP<p>
<input type="checkbox" value="Perl">Perl<p>
<input type="checkbox" value="Ruby">Ruby<p>
<input type="checkbox" value="ASP">ASP<p>
<hr>
I like to eat:<p>
<input type="radio" value="Snickers" name="candy" >Snickers<p>
<input type="radio" value="Hershey's" name="candy">Hershey's<p>
<input type="radio" value="M&M's" name="candy">M&M's<p>
<input type="radio" value="Nerds" name="candy">Nerds<p>
<hr>
I like to drink:<p>
<input type="radio" value="Coke" name="drink" >Coke<p>
<input type="radio" value="Gatorade" name="drink">Gatorade<p>
<input type="radio" value="Pepsi" name="drink">Pepsi<p>
<input type="radio" value="Milk" name="drink">Milk<p>
<br>
<input type="checkbox" value="Submit" onclick="loopForm123(document.thisForm);"> 
</form>
<p>
<div id="cbResults"></div>
<div id="radioResults"></div>
</body>
</html>

的jsfiddle: http://jsfiddle.net/zzrVN/

2 个答案:

答案 0 :(得分:0)

为什么不能使用重置按钮来清除表单?

<input type="reset" value="Reset Form" />

但是要回答你的问题,如果你能够使用jQuery,那么你可以很容易地做到这一点:

jQuery方法:http://jsfiddle.net/zzrVN/2/

$(document).ready( function() {
    $('#clearCheckboxes').click( function() {
        $('[name="thisForm"] input:checkbox').removeAttr('checked');
        $('[name="thisForm"] input:radio').removeAttr('checked');
    });
});

要使用jQuery,您只需要在文档中添加一个脚本标记:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

但是,如果您不想使用jQuery,那么纯JavaScript解决方案将类似于:

var inputItems = document.getElementsByTagName('input');
for (var i=0;i<inputItems.length;i++) {
        inputItems[i].checked = false;
}

EDIT :::

添加了特定于复选框的此代码。

function resetRadioButtonValuesforCheckbox(checkbox) {
        var inputItems = document.getElementsByTagName('input');
        if(! checkbox.checked){
        for (var i=0;i<inputItems.length;i++) {
                inputItems[i].checked = false;
        }
        }

答案 1 :(得分:0)

此代码取消选中所有单选按钮

<script src="http://code.jquery.com/jquery-1.10.2.js" type="text/javascript"></script>

$("input[type=radio]").prop("checked", false);

此代码是jquery,因此要运行此代码,您需要包含jquery库。