使用Jquery在标签上获取无线电值

时间:2012-06-07 01:10:22

标签: javascript jquery

这里有一个我的问题的例子:

http://jsfiddle.net/LWcu8/1/

如何获取我点击的当前单选按钮而不是最后一个?

6 个答案:

答案 0 :(得分:2)

$(function(){
  $(".options > label").live("click", function(event)
  {
    radio_value = $(this).prev("input[type='radio']").val();
    $("#clicked").html(radio_value);
  });
});

工作样本:http://jsfiddle.net/LWcu8/11/

答案 1 :(得分:0)

$(".options > label").live("click", function(event)
{
    radio_value = $(this).prev(":radio").val();
    $("#clicked").html(radio_value);
});

DEMO

如果你想使用jQuery> 1.7然后你可以这样做:

$(".options").on("click", "label", function(event)
{
    radio_value = $(this).prev(":radio").val();
    $("#clicked").html(radio_value);
});

DEMO

注意

您需要.prev(),因为您将点击事件绑定到label并将radio绑定到上一个元素。

答案 2 :(得分:0)

试试这个:

$(".options > label").live("click", function(event)
{
    radio_value = $("#" + $(this).attr('for')).val();
    $("#clicked").html(radio_value);
});​

演示:http://jsfiddle.net/LWcu8/6/

答案 3 :(得分:0)

尝试延迟回调:

$(".options > label").live("click", function(event) {
    setTimeout(function() {
        radio_value = $("input[name='size']:checked").val();
        $("#clicked").html(radio_value);
    }, 0)();
});​

DEMO

答案 4 :(得分:0)

$(".options > input[name='size']").live("click", function(event)
{
    radio_value = $(this).val();
    $("#clicked").html(radio_value);
});​

您的代码绑定标签的click事件,该事件在您获得无线电的值之前发生。你应该绑定输入[name ='size'],然后它就可以了。

答案 5 :(得分:-1)

将您的代码更改为:

$("input[name='size']").live("change", function(event)
{
    radio_value = $("input[name='size']:checked").val();
    $("#clicked").html(radio_value);
});​

在更改单选按钮之前,会在标签上触发click事件。所以你应该回应这个改变。