同じIDと名前を持つ2つのチェックボックスを指すfor
属性を持つ2つのラベルを持つ同じページに2つのフォームがあります。同じ名前とIDを持つ入力を持つ2つの別々のフォーム
2番目のフォームラベルの1つをクリックすると、最初のフォームチェックボックスがチェックされます。
この場合、問題はあなたが「X名2」のラベルをクリックすると、それは「Xの名前は」彼らは異なる形であるにもかかわらず、ボックスをチェックチェックあり:
.customCheckbox div label {
padding: 5px;
background-color: white;
border: 2px solid #aaaaaa;
background-image: none;
}
.customCheckbox div input {
margin: 8px auto;
padding: 5px;
text-align: left;
margin-left: -999999px;
float: left;
}
.customCheckbox input[type=checkbox]:checked ~ label,
.customCheckbox input[type=radio]:checked ~ label {
background-color: #117399;
color: #eeeeee;
}
.customCheckbox input[type=radio]:checked ~ label {
background-color: #117399;
color: #eeeeee;
}
<form style="margin:30px;">
<div class="customCheckbox">
<div>
<input id="x" name="x" type="checkbox"/><label for="x">x name</label>
</div>
<br/>
<div>
<input id="y" name="y" type="checkbox"/> <label for="y">y name</label>
</div>
</div>
</form>
<form style="margin:30px;">
<div class="customCheckbox">
<div>
<input id="x" name="x" type="checkbox"/><label for="x">x name 2</label>
</div>
<br/>
<div>
<input id="y" name="y" type="checkbox"/> <label for="y">y name 2</label>
</div>
</div>
</form>
- 私は
- 私は(可能であれば) 、JavaScriptから離れて滞在してみたいのですが(かなりの数の場所があるので、これは発生する)要素の名前を変更から離れて滞在したいのですが
- (あなたがCSSで親要素のスタイルを設定することができないので)私はラベルの内側にネストするチェックボックスをすることはできませんラベルやチェックボックスをスタイリングのためのCSSを使用しておりますので
HTML IDは一意であると想定されています。そうでない場合、このようなことが起こります。 – dannyjolie
重複IDはhtmlでは不正です。あなたのコードがやっていることは、適切な振る舞いです。つまり、ドキュメント内のFIRST idを扱い、残りの部分(Dupes)は無視します。 getElementById()のドキュメントを読んでください。 IDは重複することができないので、domノードリストではなくDOMノードを返します。可能であれば、関数は適切にgetElement ** s ** ByIdという名前にする必要があります。 –