【发布时间】:2010-07-13 17:25:18
【问题描述】:
我正在使用:
var data = $("form :input[value]");
获取表单中的所有值并将数据传递给 ajax 脚本。
我的问题是它不适用于 RADIO 按钮 - 它总是发送无线电组的最后一个值。
关于如何获取选中的单选按钮以及所有其他表单值的任何想法?
【问题讨论】:
标签: jquery forms radio-button
我正在使用:
var data = $("form :input[value]");
获取表单中的所有值并将数据传递给 ajax 脚本。
我的问题是它不适用于 RADIO 按钮 - 它总是发送无线电组的最后一个值。
关于如何获取选中的单选按钮以及所有其他表单值的任何想法?
【问题讨论】:
标签: jquery forms radio-button
为此内置了一个函数,只需调用.serialize(),如下所示:
var data = $("form").serialize();
You can see how it's appropriately filtering out these elements here.
【讨论】:
您可能正在寻找.serialize() 方法。
var data = $('form').serialize();
注意:.serialize() 只序列化具有name 属性的输入控件。
参考:.serialize()
【讨论】:
对于单选按钮,您需要检查选中的属性。
【讨论】:
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
// serialize() will get all data from form with id "myform" and store it in data variable, that will be sent to test.php page.
$(document).ready(function() {
$('#submit').click(function () {
var data = $("#myForm").serialize();
if($('input[type="radio"]:checked').length == "0") {
alert("Select any value");
} else {
$.post (
"test.php",
data,
function (response) {
$('#message').html(response);
}
);
}
return false;
});
});
</script>
</head>
<body>
<form id ="myForm">
<label>Name</label>
<input type="text" name="name" id="name"/> <br/><br/>
<br/>
<label>Select your favourite Activities:</label><br/>
<input type="radio" name="reading" value="reading"> Reading<br />
<input type="radio" name="programming" value="programming"> Programming<br />
<input type="submit" id="submit"/>
</form>
<div id="message"></div>
</body>
</html>
test.php
<?php
var_dump($_POST);
$name = $_POST['name'];
echo "Welcome ". $name.'!<br/>';
?>
【讨论】: