2017-09-25 100 views
0

我试图选择从包括检查单选按钮(一个或多个)的值的形式的所有输入值,使用下面的代码的按钮:选择与其他输入沿检查单选按钮值

$("form#second :input:not(:button)").each(function() { 
     values += $(this).val() + "\n"; 
}); 
console.log(values); 

我知道我可以使用类似这样的方式检查单选按钮的值:

$("form#second :input[name=radioBtn]:checked) 

有没有一种方法可以将两者结合起来?获取检查单选按钮的所有输入包括价值

<form id="second"> 
<select> 
    <option value="val">Value</option> 
</select> 
    <input type="button" value="Del" > 
    <button id="btnAdd" class="button" type="submit" >Add</button> 
    <textarea id="csTopic" name="comment">Some value</textarea> 
    <input type="radio" id="yes" name="radioBtn" value="yes"> 
    <input type="radio" id="no" name="radioBtn" checked value="no"> 
</form> 
+0

您可以提供您的表单代码! –

+0

@DavidJorHpan HTML添加 – hello

回答

0

jQuery有一个非常有用的功能,在这种情况下使用 - serialize()

演示:http://jsfiddle.net/55xnJ/2/

​​

正如你看到的上面,所有的具有name属性的表单中的元素将自动添加到带有&分隔符的字符串中。

注意:由于没有使用按钮提交表单,所以没有提交按钮值被序列化。对于要包含在序列化字符串中的表单元素的值,元素必须具有name属性。仅当检查复选框和单选按钮(“收音机”或“复选框”类型的输入)时,才会包含这些值。来自文件选择元素的数据不会被序列化。

0

正如你所提到的,得到所有输入,包括选中的单选按钮的值。通过formId input形成所有输入的循环,并使用each作为循环的所有输入!然后你可以检查根据您的要求,下面是我的榜样......

var val = []; 
 
$("#second input").each(function() { 
 
    switch($(this).attr("type")) { 
 
     //radio type 
 
     case "radio" : 
 
     if($(this).is(":checked")) { 
 
      val.push($(this).val()); 
 
     } 
 
     break; 
 
     //other type is set default 
 
     default : 
 
      val.push($(this).val()); 
 
     break; 
 
     } 
 
}); 
 
console.log(val);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="second"> 
 
<select> 
 
    <option value="val">Value</option> 
 
</select> 
 
    <input type="button" value="Del" > 
 
    <button id="btnAdd" class="button" type="submit" >Add</button> 
 
    <textarea id="csTopic" name="comment">Some value</textarea> 
 
    <input type="radio" id="yes" name="radioBtn" value="yes"> 
 
    <input type="radio" id="no" name="radioBtn" checked value="no"> 
 
</form>