html
1<label for="sample_checkbox"> 2<input type="checkbox" id="sample_checkbox" />チェックしてください 3</label>
このように簡単なチェックボックスを20個配置させたのですが、3行目のチェックボックスのラベルを押すと、ラベルにボタン機能がないのにチェックボックスにチェックが入ります。そこのチェックボックスだけです。そういうことが起こるのが。
3行目のその問題のチェックボックスは、他にも問題を起こします。隣のチェックボックスをクリックすると、問題のチェックボックスも連動してチェックが入ります。
cssで特に連動するようなことはしていませんし、ラベルにボタン機能をつけていません。
この原因がわかりません。教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
全てのlabel要素でfor属性値を指定している可能性
label要素をコピー&ペーストでマークアップしている可能性はありませんでしょうか。
HTML
1<label for="sample_checkbox"><input type="checkbox" id="sample_checkbox" />チェックしてください</label> 2<label for="sample_checkbox"><input type="checkbox" id="sample_checkbox" />チェックしてください</label> 3<label for="sample_checkbox"><input type="checkbox" id="sample_checkbox" />チェックしてください</label> 4<label for="sample_checkbox"><input type="checkbox" id="sample_checkbox" />チェックしてください</label> 5<label for="sample_checkbox"><input type="checkbox" id="sample_checkbox" />チェックしてください</label>
label要素にはクリックされた時にfor属性値で指定されたid属性値のチェックボックスがチェックされる機能がありますが、同じid属性値が複数存在した場合は最初に宣言されたチェックボックスがチェックされる仕様です。
各々のlabel要素で重複しないfor属性値をつける
label要素のfor属性値(ひいてはinput要素のid属性値)には重複しない値を入れてください。
HTML
1<label for="sample_checkbox1"><input type="checkbox" id="sample_checkbox1" />チェックしてください</label> 2<label for="sample_checkbox2"><input type="checkbox" id="sample_checkbox2" />チェックしてください</label> 3<label for="sample_checkbox3"><input type="checkbox" id="sample_checkbox3" />チェックしてください</label> 4<label for="sample_checkbox4"><input type="checkbox" id="sample_checkbox4" />チェックしてください</label> 5<label for="sample_checkbox5"><input type="checkbox" id="sample_checkbox5" />チェックしてください</label>
input要素をlabel要素で括る
label要素がinput要素を子に持つ場合はfor属性値を指定しなくても構いません。
HTML
1<label><input type="checkbox" id="sample_checkbox1" />チェックしてください</label> 2<label><input type="checkbox" id="sample_checkbox2" />チェックしてください</label> 3<label><input type="checkbox" id="sample_checkbox3" />チェックしてください</label> 4<label><input type="checkbox" id="sample_checkbox4" />チェックしてください</label> 5<label><input type="checkbox" id="sample_checkbox5" />チェックしてください</label>
Re: diamonddogs さん
投稿2016/11/16 23:03
編集2016/11/17 13:01総合スコア18194
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
最近のブラウザならチェックボックスと説明テキストが隣接するなら<label>で加工だけで十分です
<label><input type="checkbox" name="sample_checkbox[]" value="1">チェックしてください</label> <label><input type="checkbox" name="sample_checkbox[]" value="2">チェックしてください</label> <label><input type="checkbox" name="sample_checkbox[]" value="3">チェックしてください</label> <label><input type="checkbox" name="sample_checkbox[]" value="4">チェックしてください</label> <label><input type="checkbox" name="sample_checkbox[]" value="5">チェックしてください</label>
投稿2016/11/17 00:58
総合スコア117605
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/17 08:55

0
ラベルタグを使うと文字ラジオボタンの横の文字をクリックするとラジオボタンが選択されるのは仕様です。
3行目はおそらく入れ子がおかしいのではないかと思われます。
投稿2016/11/16 17:47
総合スコア115
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。