在jquery中访问同名单选按钮

在jquery中访问同名单选按钮,jquery,html,asp.net-mvc-4,Jquery,Html,Asp.net Mvc 4,我的视图中有以下代码。它有两个同名单选按钮。它在控制器中运行良好,我可以使用单选按钮名称访问它的表单集合,该单选按钮名称为我选择的是或否值 所以,如果用户在表单中选择“否”,我将从表单[“rbc”]中访问它,它会给我“否”的值 虽然在jquery中并非如此,但我无法访问此单选按钮来检查用户是否选择了“是”或“否”。请建议我如何在jquery中实现它 如果必填字段为“是”,则为每个字段分配一个类“验证”,否则为空。为了验证来自jquery的控件(客户端) 当前jquery代码迭代所有单选按钮。但我

我的视图中有以下代码。它有两个同名单选按钮。它在控制器中运行良好,我可以使用单选按钮名称访问它的表单集合,该单选按钮名称为我选择的是或否值 所以,如果用户在表单中选择“否”,我将从表单[“rbc”]中访问它,它会给我“否”的值

虽然在jquery中并非如此,但我无法访问此单选按钮来检查用户是否选择了“是”或“否”。请建议我如何在jquery中实现它

如果必填字段为“是”,则为每个字段分配一个类“验证”,否则为空。为了验证来自jquery的控件(客户端)

当前jquery代码迭代所有单选按钮。但我需要它对具有相同名称的单选按钮只重复一次

控制器

        signup.Controls = new List<MembershipControls>();

        foreach(var controlItem in _membershipcontrols.Table.ToList())
        {
            signup.Controls.Add(new MembershipControls()
            {
                Caption = controlItem.Caption,
                Content = controlItem.Content,
                ControlType = controlItem.ControlType,
                GroupTitle = controlItem.GroupTitle,
                Mandatory = controlItem.Mandatory == "Yes" ? "validate" : "",
                Name = controlItem.Name,
                UserId = controlItem.UserId
            }); //modify mandatory field to assign class "validate" and empty to not validate
        }




        signup.Groups = new List<Groups>();
        signup.Groups = _groups.Table.ToList();

        return View("Signup", signup);
signup.Controls=newlist();
foreach(在_membershipcontrols.Table.ToList()中的var controlItem)
{
signup.Controls.Add(newmembershipControls()
{
Caption=controlItem.Caption,
Content=controlItem.Content,
ControlType=controlItem.ControlType,
GroupTitle=controlItem.GroupTitle,
必填项=控制项。必填项=“是”?验证“:”,
Name=controlItem.Name,
UserId=controlItem.UserId
});//修改必填字段以指定类“validate”,修改为空则不指定类“validate”
}
signup.Groups=新列表();
signup.Groups=_Groups.Table.ToList();
返回视图(“注册”,注册);
查看

          @foreach (var groups in Model.Groups)
            {
                    <label style="font-weight:bold">@groups.GroupTitle</label>

                    <div style=" border: 1px solid #CCCCCC;padding:5px">

                    @foreach (var row in Model.Controls.Where(r => r.GroupTitle == groups.GroupTitle))
                    {
                        <div style="padding:7px">

                             @if (row.ControlType == "Single Line Text")
                             {
                                <label>@row.Caption</label>
                                <input type="text" name="@row.Name" class="@row.Mandatory" />
                             }
                             else if (row.ControlType == "Multi Line Text")
                             {
                                 <label>@row.Caption</label>
                                 <textarea name="@row.Name" class="@row.Mandatory"></textarea>
                             }
                             else if (row.ControlType == "Yes/No Choice(Radio Buttons)")
                             {                            
                                <div>     
                                    <label>@row.Caption</label>
                                    &nbsp                     
                                    <input type="radio" name="@row.Name" value="Yes" class="@row.Mandatory"/> &nbsp Yes                             
                                    &nbsp
                                    <input type="radio" name="@row.Name"  value="No" class="@row.Mandatory"/> &nbsp No
                                </div>
                             }
                             else if (row.ControlType == "Checkbox")
                             {
                                 <div>
                                    <input type="checkbox" name="@row.Name" class="@row.Mandatory"/> @row.Caption
                                 </div>
                             }
                             else if (row.ControlType == "Date")
                             {
                                 <div>
                                     <label>@row.Caption</label>
                                    <input type="date" name="@row.Name" class="@row.Mandatory"/>
                                 </div>
                             }
                        </div>
                    }
                </div>
                }
@foreach(Model.groups中的变量组)
{
@groups.GroupTitle
@foreach(Model.Controls.Where(r=>r.GroupTitle==groups.GroupTitle))中的var行)
{
@if(row.ControlType==“单行文本”)
{
@行。标题
}
else if(row.ControlType==“多行文本”)
{
@行。标题
}
else if(row.ControlType==“是/否选项(单选按钮)”)
{                            
@行。标题
 
&是的
 
 否
}
else if(row.ControlType==“复选框”)
{
@行。标题
}
else if(row.ControlType==“日期”)
{
@行。标题
}
}
}
脚本

<script type="text/javascript">
    $(document).ready(function () {
     $('#signupform').submit(function ()
     {
        $(".validate").each(function () {                
            if ($(this).is("input[type=radio]")) {        

               alert($(this).attr('name'));
              // here is the logic to check whether user has selcted Yes or No

            }
        });
   });
});

$(文档).ready(函数(){
$(“#注册表单”).submit(函数()
{
$(“.validate”).each(函数(){
如果($(this).is(“输入[type=radio]”){
警报($(this.attr('name'));
//下面是检查用户是否选择了是或否的逻辑
}
});
});
});
用作

 $('input[name="rbc"]:checked').val()

尽量避免jQuery中的伪选择器([type=radio]),因为它们的性能很差。使用类选择器。给收音机上一节课,然后执行以下操作:

$('.my-class:checked').val();
如果您不想直接使用:checked,则可以将其用作is

$('.my.class').each(function(){
     if ( $(this).is(':checked') ) { /* magic */ }
});

您应该仅为单选按钮获取
:选中的
项:

$(function () {
    $('button').on('click', function () {
        $('.validate:checked').each(function () {
            var name = $(this).attr('name');
            var value = $(this).val();
            alert(name + ' : ' + value);
        });
    });
});

.

您的单选按钮没有验证类???我修改了代码。基本上,我已经为必填字段分配了一个类,以便从jquery验证它们。另外,控件名来自服务器端。所以我也不知道控件名。我只使用类名“validate”访问控件。因此,假设在一个分区中有两个单选按钮作为一个组。我需要通过迭代jquery中的所有单选按钮来访问哪个用户选择了Yes或Noit。我只需要访问它对每个单选按钮有相同的名称。你建议的链接工作良好,如果我们已经知道单选按钮的名称。但是如果我们迭代类并访问控件呢。请查看我修改的代码和建议,这只适用于选中的单选按钮。如果用户没有选中其中一个单选按钮,该怎么办。那它就不会表现出来了。我需要检查所有用户是否选择了“否”、“是”或“无”。很容易找到Amit