0

我有一个带有文本区域、文本、复选框和按钮的表单。我选择的元素如下:

$("#frmPersonalInfo :input:not(input[type=radio]):not(input[type=button])").each(function(){  
  //code here
});

当我省略not(input[type=radio])then 无线电元素时,将被选中。我想选择已检查的无线电(活动的)而不是所有无线电输入。有没有办法做到这一点?
Radio HTML 代码如下:

<input type="radio" checked="checked" id="txtPersonalInfoMale" name="gender" value="1" />
<input type="radio" id="txtPersonalInfoFemale" name="gender" value="2" />
4

4 回答 4

4

用于:checked选择所有选中的复选框,

$("#frmPersonalInfo :input[type=radio]:checked").each(function(){  
  //code here
});

如果你想选择一些输入类型,那么你可以这样做,你需要自定义它。

现场演示

$("#frmPersonalInfo :input").not(':button').not(':text').filter(function(){
    if($(this).attr('type') == 'radio' && $(this).attr('checked') == 'checked')
    return $(this);
}).each(function(){
   //Your code here
});
于 2012-08-03T13:15:27.803 回答
2

这可能不是最好的方法,但以下应该可以

  $("#frmPersonalInfo :input:not(input[type=radio]):not(input[type=button]),#frmPersonalInfo :input[type=radio]:checked").each(function(){  
//code here
  });
于 2012-08-03T13:36:46.480 回答
0

为了实现我想要的,我做了以下事情:

            var cnt=0;
            $("#frmPersonalInfo :input[type=radio]:checked").each(function(){
                    personalInfoArr[cnt++]=$(this).val();
            });
            $("#frmPersonalInfo :input:not(input[type=radio]):not(input[type=button])").each(function(){
                    personalInfoArr[cnt++]=$(this).val();
            });

有更好的方法吗?

于 2012-08-03T13:34:22.187 回答
-2

不应该是这样吗?为什么所有的:不是?

$("#frmPersonalInfo input[type=radio]:selected").each(function(){  
      //code here
});

伙计,也许我不明白你的问题。jQuery 有一个 ":selected" 选择器。你可以在这里找到所有信息:

http://api.jquery.com/selected-selector/

于 2012-08-03T13:19:16.930 回答