jQuery:如何查找是否检查了动态生成id的单选按钮?

时间:2015-03-24 02:59:13

标签: javascript jquery

事先不知道项目ID。我们只在运行时才知道。

@foreach (var item in Model)  
     {  
         ...  
           <tr>
             <td>
                 @Html.RadioButton("Opinion_" + item.ID, "Agree") Agree
                 <br />
                 @Html.RadioButton("Opinion_" + item.ID, "Disagree") Disagree
                 <br />
                 @Html.RadioButton("Opinion_" + item.ID, "Neither") Neither  
             </td>
         </tr>
     }

<div>
     <textarea rows="5" cols="75" id="comments" name="comments"></textarea>
</div>

<p>
     <input type="submit" id="btnSubmit" />
</p>

这是我的脚本,我想检查单选按钮是否已经过检查 如果是,那么我想让用户继续。
如果没有,我只想显示一条警告说他们还没有做出选择。

<script type="text/javascript">  
    $(document).ready(function () {  
        $('#btnSubmit').click(function (e) {  
            var isValid = true;
            if ($.trim($("#comments").val()) == '') {
                isValid = false;
            }
            if (isValid == false) {
                e.preventDefault();
                alert('Please explain your choices in the textbox provided.');
            }
        });
    });       
</script>

如何修改上述脚本才能完成此操作?

2 个答案:

答案 0 :(得分:1)

由于每一行都有无线电组,我想你可以

<tr class="choice">
    <td>
        @Html.RadioButton("Opinion_" + item.ID, "Agree") Agree
        <br />
        @Html.RadioButton("Opinion_" + item.ID, "Disagree") Disagree
        <br />
        @Html.RadioButton("Opinion_" + item.ID, "Neither") Neither  
    </td>
</tr>

然后

$(document).ready(function () {
    $('#btnSubmit').click(function (e) {
        var isValid = true;
        if ($.trim($("#comments").val()) == '') {
            alert('Please explain your choices in the textbox provided.');
            isValid = false;
        }
        if ($('tr.choice').not(':has(:radio:checked)').length) {
            alert('Please select an option.');
            isValid = false;
        }
        if (isValid == false) {
            e.preventDefault();
        }
    });
});

演示:Fiddle

答案 1 :(得分:0)

给他们一个班级名称。请注意,如果输入名称匹配,则只能选择一个。

假设他们没有,使用班级名称,您将能够在不知道他们的身份的情况下检查他们。

if($('.myRadioButtonClassName').is(':checked')){
  console.log($('.myRadioButtonClassName'):checked').val());
}