ユーザーが選択したかどうかを確認するチェックボックスが2つあります。 2を選択すると、それ以上は選択できません。 問題は、それらを複数の行で数回使用し、同じクラスを使用していることです。javascriptで同じクラスの要素の条件を設定します。
ボタンの各グループで2つのチェックボックスしか選択されていない場合、どうすればjavascriptでチェックできますか?
HTML:
<td>
<!-- First Group of Buttons -->
<p>Barcelona</p>
<label class="dir-bet" type="checkbox">Barcelona Win</label>
</td>
<td class="middle-table">
<p>VS</p>
<label class="dir-bet" type="checkbox">Draw</label>
</td>
<td class="team-header">
<p>R.Madrid</p>
<label class="dir-bet" type="checkbox">R.MadridWin</label>
</td>
</tr>
<tr>
<td>
<!-- Second Group of Buttons -->
<p>Barcelona</p>
<label class="dir-bet" type="checkbox">Barcelona Win</label>
</td>
<td class="middle-table">
<p>VS</p>
<label class="dir-bet" type="checkbox">Draw</label>
</td>
<td class="team-header">
<p>R.Madrid</p>
<label class="dir-bet" type="checkbox">R.Madrid Win</label>
</td>
のJavaスクリプト:
var list = document.getElementsByClassName("dir-bet");
var checkBet = function(){
var checkNum = 0;
for (i = 0; i < list.length; i++){
if(list[i].getAttribute("checked")){
checkNum++;
}
}
if (checkNum<2) {
if(this.getAttribute("checked")){
this.setAttribute("checked","");
this.classList.remove ("prime-bg", "prime-clr");
}else{
this.setAttribute("checked","true");
this.classList.add ("prime-bg", "prime-clr");
}
}else{
if(this.getAttribute("checked")){
this.setAttribute("checked","");
this.classList.remove ("prime-bg", "prime-clr");
}
}
};
for (i = 0; i < list.length; i++){
list[i].addEventListener("click", checkBet);
}
あなたのを作ることができますチェックボックスをhtmlでグループ化するか、名前属性でグループ化することで簡単に使えますか?そこからそれはかなり簡単になるはずです。 – trainoasis
私はそれについて考えましたが、私はチェックボックスで20行があれば20の属性を作成する必要があります。より良い方法がありますか? –
すべてのデータをハードコードしていますか?おそらくサーバサイド言語を使用して配列に格納する(またはDBから取得する)ことができ、簡単にそのように表示できます。また、グループごとに1つの名前をつけることを考えていたので、属性は問題ではありません:name = "groupname []" – trainoasis