【问题标题】:How to recognize individual radio buttons if they are added dynamically?如果动态添加单个单选按钮,如何识别它们?
【发布时间】:2014-09-07 18:45:11
【问题描述】:

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

问题是单选按钮是通过下拉列表动态添加的(数字 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]"这样的数组,我该如何让它工作

【问题讨论】:

    标签: php jquery button dynamic radio


    【解决方案1】:

    使用 jQuery on() 进行事件委托,以防动态生成元素。

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

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

    我没有看到 ID 为 sdf-text-$('input#sdf-text')input

    你需要$(':text[name*="sdfradio"]')

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2010-10-02
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多