1

フォーム内のすべてのボックスをチェックしてチェックするスクリプトがあります。私の問題は、チェックボックスだけに影響を与えたいだけでなく、ラジオボタンにも影響を与えたいということです。

これは私のjavascriptです

    <script>

checked=false;
function checkedAll (frm1) {
    var aa= document.getElementById('frm1');
     if (checked == false)
          {
           checked = true
          }
        else
          {
          checked = false
          }
    for (var i =0; i < aa.elements.length; i++) 
    {
     aa.elements[i].checked = checked;
    }
      }
</script>

これは私のhtmlです

<form id ="frm1">
<input type="checkbox" name="chk1">
<input type="radio" name="chk1">
<input type="checkbox" name="chk2">
<input type='checkbox' name='checkall' onclick='checkedAll(frm1);'>
</form>

ラジオボタンではなく、チェックボックスのみをチェックする方法があるかどうか疑問に思っていました。

4

3 に答える 3

3
for (var i =0; i < aa.elements.length; i++) 
{
    if (aa.elements[i].type == "checkbox") {
        aa.elements[i].checked = checked;
    }
}
于 2012-08-16T18:38:58.613 に答える
0

jqueryを使用できます。エディターで以下のhtmlコードを使用してください。正しく動作します!

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.js">    </script>
</head>
    <form id="myform">  
       <input type="checkbox" />chk1  
       <input type="checkbox" />chk2<br/>    
       <input type="radio" />radio1<br/>       
       <a style="cursor:pointer" onclick="ch()">check/uncheck</a>
    </form>
</body></html>

そしてこのスクリプト:

 <script>
    function ch(){
        $("form#myform input[type='checkbox']").each(function(chk) {
            this.checked = !this.checked;
        });        
    }
 </script>
于 2012-08-16T19:00:59.797 に答える
0

フォーム要素をループして、「type」プロパティを確認できます。または、jQuery などの JavaScript ライブラリを使用して、特定のタイプの要素を簡単に選択することもできます。

var elLength = document.MyForm.elements.length;

for (i=0; i<elLength; i++)
{
    var type = MyForm.elements[i].type;
    if (type=="checkbox" && MyForm.elements[i].checked){
        alert("Form element in position " + i + " is of type checkbox and is checked.");
    }
    else if (type=="checkbox") {
        alert("Form element in position " + i + " is of type checkbox and is not checked.");
    }
    else {
    }
}

jQuery では次のようになります。

$("input[type='checkbox']).each(function(chk) {
    chk.checked = !chk.checked;
});
于 2012-08-16T18:42:39.210 に答える