我尝试使用以下代码从包含已检查单选按钮,按钮值的表单中选择所有输入值:
$("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)
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
循环所有输入!然后你可以根据需要进行检查,下面就是我的例子......
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;