我有一个标签标签,我试图链接到输入类型复选框标签。我有多个标签和多个复选框输入,它们都具有相同的ID和相同的名称,但值不同。有人可以指导我如何构建一个链接到值而不是id的标签?所以这个:
<label for="8994"></label>
会链接到:
<input id="member_ids_" name="member_ids[]" type="checkbox" value="8994">
或者这不可能吗?
答案 0 :(得分:4)
标签的for
属性必须与其引用的<input>
元素的ID匹配。在你的情况下,它将是这样的:
<label for="member_id_8994"></label>
<input id="member_id_8994" name="member_ids[]" type="checkbox" value="8994">
答案 1 :(得分:2)
&#39; for&#39;表单元素必须与同一表单元素的ID匹配。
<label for="id_1"></label>
<input id="id_1" name="member_ids[1]" type="checkbox" value="8994">
<label for="id_2"></label>
<input id="id_2" name="member_ids[2]" type="checkbox" value="8994">
<label for="id_3"></label>
<input id="id_3" name="member_ids[3]" type="checkbox" value="8994">
<label for="id_3"></label>
<input id="id_3" name="member_ids[4]" type="checkbox" value="8994">
答案 2 :(得分:1)
您的DOM元素 必须 具有不同的ID。 即使每个ID都被设置为任何值......或者其他任何值。
他们不能拥有相同的身份证。
一旦你完成了这项工作,在标签上设置for
变得非常简单。
答案 3 :(得分:0)
可能无效的jQuery解决方案。
$(function() {
ModifyLabels({target: $('input')});
$('input').change(ModifyLabels);
});
function ModifyLabels(eventObject) {
var inputs = $(eventObject.target);
input.each(function(i, input) {
$('label').each(function(i, label) {
if ($(label).attr('for') == $(input).val()) {
$(input).attr('id', $(input).val());
}
});
});
}
答案 4 :(得分:0)
我怀疑这是否可行。 Label's for与输入的id属性相关联。实现目标的一种方法可能是通过javascript,例如敲门声明的绑定。
点击此处查看:http://knockoutjs.com/documentation/introduction.html
这一行:
<label data-bind="click: myInput"></label>
<input type="checkbox" id="hello">
<script type="text/javascript">
var myInput= {
//implement the function to bind the label to the input#hello here
}
};
</script>