<p id="noteTypebox">
<label for="noteType_2" class="notetypelabel" id="noteType_2" >
<input type="radio" name="noteTypeID" value="2" class="notetype">IDI</input>
</label>
</p>
鉴于上面的代码,我希望JQUERY代码绑定到LABEL,因为INPUT框是隐藏的(我不希望apge上的单选按钮)。
当用户点击标签时,它应该触发JQUERY函数并提供与标签关联的INPUT的值。例如,如果用户点击标签=“noteType_1”,则可以提醒noteType_1&amp; 1
这是我目前的代码,我可以使用你的帮助!感谢
$( document ).ready( function() {
$('#noteTypebox:label').click(radioClicks)
});
function radioClicks() {
alert(input name + input value);
return false;
};
由于
答案 0 :(得分:1)
我会做这样的事情:
$(document).ready(function() {
$('#noteTypebox label').click(radioClicks);
});
function radioClicks() {
var input = $(this).children("input");
alert(input.attr("name") + " " + input.val());
return false;
};
然而,这依赖于您始终将HTML结构相同。
更强大的方法是执行以下操作:
function radioClicks() {
var label = $(this);
var input = $("input#" + label.attr("for"));
alert(input.attr("name") + " " + input.val());
return false;
};
在这种情况下,标签可以是与输入相关的任何位置,它仍然有效。
更新:已更新第二个代码段,仅获取已选中的单选按钮。
上面的代码会查找input
,其ID与for
的{{1}}属性相同。看到你更改了label
的id,这会破坏代码并使第二个例子不够充分。但是,只要input
仍然是input
的子项,第一个示例就可以正常工作。另外,我需要提一下,label
上的for
属性因您的更改而变得多余,因为它现在所说的都是label
适用于自身。
答案 1 :(得分:1)
您需要找到与input
相关联的label
元素,如下所示:
var input = $('#' + $(this).attr('for'));
然后,您可以通过撰写input.attr('name')
来获取名称,并通过撰写input.val()
来获取该值。
答案 2 :(得分:0)
只需更改为:
$(".notetypelabel").click( ....