选中已选中的单选按钮值以及其他输入

时间:2017-09-25 15:37:35

标签: javascript jquery

我尝试使用以下代码从包含已检查单选按钮,按钮值的表单中选择所有输入值:

$("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>

2 个答案:

答案 0 :(得分:0)

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

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

//Just type
$("#preview_form").serialize();

//to get result:
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1

如上所示,带有name属性的表单中的所有元素都将自动添加到包含&分隔符的字符串中。

  

注意:没有提交按钮值被序列化,因为表单未使用按钮提交。要使表单元素的值包含在序列化字符串中,该元素必须具有name属性。复选框和单选按钮(类型为&#34;输入&#34;或&#34;复选框&#34;的输入)中的值仅在选中时才包括在内。来自文件选择元素的数据未被序列化。

答案 1 :(得分:0)

如您所述,获取所有输入,包括已检查单选按钮的值。循环形成formId input的所有输入并使用each循环所有输入!然后你可以根据需要进行检查,下面就是我的例子......

&#13;
&#13;
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);
&#13;
<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>
&#13;
&#13;
&#13;