如果动态添加单个单选按钮,如何识别它们?

时间:2014-07-17 03:17:36

标签: php jquery button dynamic radio

我有两个单选按钮:'是'并且没有'。如果我选择“是”'将出现一个输入文本框,如果我选择“否”'文本框将被隐藏。

问题是单选按钮是通过下拉列表动态添加的(数字1-30)。

目前设置如下:

<li>
    <input type="radio" id="yes-sdf-1" name="field[0][sdfradio]" value="Yes" />
    <label for="yes-sdf-1">Yes</label>
    <input type="text" name="field[0][sdf-text]" style="display: none;" />
</li>
<li>
    <input type="radio" id="no-sdf-1" name="field[0][sdfradio]" value="No" checked />
    <label for="no-sdf-1">No</label>
</li>

这是我的jQuery

$(':radio[name="sdfradio"]').change(function() {
    var sdfradio = $(this).filter(':checked').val();
    $('input#sdf-text').hide();
    if( sdfradio == 'Yes'){
        $('input#sdf-text').show();
        $('input#sdf-text').addClass("field required");
    }else if( sdfradio == 'No' ){
        $('input#sdf-text').hide();
    }

});

但是正如你所看到的,这只有在有一个sdfradio的情况下才有效。如果我使用像name="field[count_goes_here][sdfradio]"

这样的数组,我该如何让它工作

1 个答案:

答案 0 :(得分:0)

在动态生成元素的情况下,使用jQuery on() 进行事件委派。

另外,使用*= - jQuery attribute-contains selector

$(document).on('change',':radio[name*="sdfradio"]',function() {
    ....
});

我看不到ID为input - sdf-text的{​​{1}}的引用。

您需要$('input#sdf-text')