如何在单击提交按钮时检查选择了哪个动态创建的单选按钮?

时间:2016-09-14 18:39:50

标签: javascript jquery html

  

我知道此问题之前已被问过很多次,但我找不到适合我具体案例的解决方案。

     

所以我有一个我最初静态创建的单选按钮。 HTML代码如下所示

    <body>
        <div class = 'container'>
            <div class = 'row'>
                <div class = 'col-md-8 col-md-offset-2 well'>
                    <div class = 'col-md-4'>
                        <h1>Title Placeholder</h1>
                        <p>My vote goes to</p>
  

在下面的div中我创建了第一个静态单选按钮

                        <div class = 'radio'>
                            <label>
                                <input type = 'radio' value = '1' name = 'options' class = 'radio-options'/>
                                <p id = 'radio1'>The value of 1</p>
                            </label>
                        </div>
                        <button type = 'submit' class = 'btn btn-primary submit-butt'>Submit</button>
                    </div>
                </div>
            </div>
        </div>   

    </body>
  

以下是我创建动态单选按钮的javascript文件部分

function createOptions(length, options){
    $('#radio1').html(options[0]);
    for (var i = 1; i < length; i++){
        $('.radio').append('<br>');
        $('.radio').append('<label><input type = radio value = 1 name = options class = radio-options/><p>'+options[i]+'</p></label>');
    }
    $('.radio').append('<br>');
    $('.radio').append('<label><input type = radio value = 1 name = options class = radio-options/><p>Custom</p></label>')
}
  

现在,当我点击提交按钮,选中其中一个单选按钮时,我希望能够知道选中哪个单选按钮以及其输入标签中包含的p值

$('.submit-butt').on('click', function(){
                   if($('.radio-options').is(':checked')){
                       console.log('I have my value');
                   } 
                });
  

我尝试了上面的代码,但它似乎只适用于第一个静态创建的单选按钮。如何使用相同的功能来处理静态和动态生成的所有单选按钮?

2 个答案:

答案 0 :(得分:1)

只要您的表单只处理一组单选按钮,您就可以这样做,只需将formId更改为您用于包装无线电的表单的任何类/ ID。

$('input[name=radioName]:checked', '#formId').val()

$('.submit-butt').on('click', function(){
   var selectedRadioValue = $('input[name=radioName]:checked','#formId').val()
   console.log(selectedRadioValue)
});

答案 1 :(得分:0)

这就是你如何做到的。参考工作演示。

@font-face {
   font-family: 'Open-Sans-Private';
}