2012-02-02 18 views
0

私はこのjavascriptコードを使用しています。ボタンをクリックすると、少なくとも1つのチェックボックスを選択する必要があります。私が間違ってやっていることは誰にでも分かります。私はjqueryを使いたくありません。 は、JavaScriptを使用して少なくとも1つのチェックボックスを選択する必要があります

function check() 
{ 
var flag = false; 
for(var i=1;i<=4;i++) 
{ 
    var checkb = document.getElementById("check"+i); 

    if(checkb.checked) 
    { 
    flag = true; 
    break; 
    } 
} 
if(!flag) 
alert("What is your interest \n(select at least one option)"); 
return flag; 
} 
</script> 

ボタンのコードをクリックして、コードが正常に動作します

<input type="submit" name="submit" value="Submit" onclick="return check();"> 
+0

はあなたのチェックボックスのHTML – amd

+0

を提供する...とどのようにそれが期待通りに動作していません。 –

答えて

0

です。チェックボックスのタグにid="check1"が設定されていますか?

+0

4つのチェックボックスがあり、すべてが異なるIDを持ちますが、Firebugでは、 checkb is null " –

+0

' id = "file" 'の代わりに' id = "check1" 'が必要なので、' document.getElementById( "check" + i); 'でidで要素を取得しています。 –

+1

おかげさまで...最初はうまくいきましたし、同じことをしました。しかし後で私は本当に完全に台無しになった。 –

0

はい、上記のコメントに記載されているとおり、コードは正常に動作します。しかし、あなたはあなたのチェックを行うことができます...もう少しきれいにチェックしてください - あなたは "check0" - IDの "check4"を期待しています。あなたはそれらをすべて掴み、設定された制限を心配する必要はありません(使用しているIDの少なくとも1つが存在しないため、コードが機能しない可能性があります)。

<input type="checkbox" id="check0" /> 
<input type="checkbox" id="check1" /> 
<input type="checkbox" id="check2" /> 
<input type="checkbox" id="check3" /> 
<hr/> 
<input type="button" onclick="checkIt();" value="Check the Checks"> 

そして、いくつかのJS

checkIt = function() 
{ 
    var checks = document.getElementsByTagName('input'); 
    var hasCheck = false; 
    for(i in checks) 
    { 
     // Could also check for a classname here to narrow 
     // your result set. 
     if(checks[i].type == 'checkbox') 
      hasCheck |= checks[i].checked; 
    } 

    if(!hasCheck) 
     alert('You should check one!'); 

    return hasCheck; 
} 
+0

コードを共有していただきありがとうございました.. –

関連する問題