Ответ 1
-
A
label
может быть связан только с одним элементом управления за один раз. Об этом свидетельствует тот факт, что атрибутfor
указывает на элемент с соответствующим атрибутом идентификатора.У вас есть
button
, являющийся потомком вашегоlabel
; ожидаемая интерпретация этого заключается в том, чтоlabel
служит в качестве метки дляbutton
. Однако вы пытаетесь связать переключатель, а не элементbutton
, сlabel
. Настоящая проблема заключается в том, что существует конфликт между элементами управления формой иlabel
; он не может определить, с каким контролем он должен быть связан.Я предполагаю, что тот факт, что переключатель не работает правильно, является побочным эффектом этого. Возможно, это до некоторого активационного поведения как в переключателе, так и в элементе
button
.Я проверил, что
button
являются законными детьмиlabel
s. Ярлыки разрешают содержание фразы, а кнопки - это фразы, поэтому все должно быть в порядке.Валидатор, тем не менее, производит следующую ошибку с вашей разметкой:
Ошибка. Любой потомок
button
элементаlabel
с атрибутомfor
должен иметь значение ID, соответствующее этому атрибутуfor
.Это связано с тем, что элемент
label
с атрибутомfor
должен иметь элемент управления формой с этим значением идентификатора для атрибутаfor
, на который указывает, даже если этот элемент управления является потомком самогоlabel
, Но вы не можете назначить один и тот же идентификатор более чем одному элементу. Результатом является вышеупомянутый конфликт. -
Не зная, чего вы пытаетесь сделать здесь, лучший совет, который я могу дать, если вы просто хотите, чтобы
label
имел вид кнопки, должен просто нарисовать ее как таковой.