1

ここに私の問題の例があります:

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

最後にクリックしたラジオボタンではなく、現在クリックしたラジオボタンを取得するにはどうすればよいですか?

4

6 に答える 6

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/

于 2012-06-07T01:13:15.117 に答える
0
$(".options > label").live("click", function(event)
{
    radio_value = $(this).prev(":radio").val();
    $("#clicked").html(radio_value);
});

デモ

jQuery > 1.7 を使用する場合は、次のように実行できます。

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

デモ

ノート

.prev()クリックイベントをその前の要素にバインドするためにlabel必要radioです。

于 2012-06-07T01:13:56.170 に答える
0

これを試して:

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

デモ: http://jsfiddle.net/LWcu8/6/

于 2012-06-07T01:15:08.973 に答える
0
$(".options > input[name='size']").live("click", function(event)
{
    radio_value = $(this).val();
    $("#clicked").html(radio_value);
});​

コードは、ラジオの値を取得する前に発生するラベルのクリック イベントをバインドします。input[name='size'] をバインドするだけで機能します。

于 2012-06-07T03:04:46.023 に答える
0

コールバックを遅らせてみてください:

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

デモ

于 2012-06-07T01:19:25.403 に答える
-1

コードを次のように変更します。

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

イベントは、clickラジオ ボタンへの変更が発生する前に、ラベルで発生します。そのため、代わりに変更に対応する必要があります。

于 2012-06-07T01:14:23.257 に答える