所有输入加上复选框元素都在jQuery中使用input:text进行选择?

时间:2012-08-03 13:13:04

标签: jquery html

我有一个包含textareas,文本,复选框和按钮的表单。我选择如下元素:

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

当我省略not(input[type=radio])时,正在选择无线电元素。我想选择已经检查过的无线电(有效的无线电输入)。有没有办法做到这一点?
电台HTML代码如下:

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

4 个答案:

答案 0 :(得分:4)

使用:checked选中所有选中的复选框

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

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

<强> Live Demo

$("#frmPersonalInfo :input").not(':button').not(':text').filter(function(){
    if($(this).attr('type') == 'radio' && $(this).attr('checked') == 'checked')
    return $(this);
}).each(function(){
   //Your code here
});

答案 1 :(得分:2)

这可能不是最好的方法,但下面应该有效

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

答案 2 :(得分: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();
            });

有更好的方法吗?

答案 3 :(得分:-2)

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

$("#frmPersonalInfo input[type=radio]:selected").each(function(){  
      //code here
});
老兄,也许我不明白你的问题。 jQuery有一个&#34 ;: selected&#34;选择。 你可以在这里找到所有的信息:

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