jquery - 如何使用 jQuery 获取单选按钮的值?
问题描述
我当前的代码从表单中获取所有数据,然后将其作为数组输出到控制台(我正在测试联系表单)。它返回的所有数据都是正确的,但单选按钮的值始终相同。
html:
<form class="form1" action="form.php" method="post">
<div class="form-sect">
<div class="formb-check">
<input type="text" name="name" placeholder="Name" class="formb-small">
<input type="text" name="id" placeholder="ID: 00000000" class="formb-small">
</div>
</div>
<div class="form-sect">
<div class="formb-srv">
<div class="formb-check">
<input type="radio" name="server" id="server-1" value="Srv 1"><label for="server-1">Server 1</label>
<input type="radio" name="server" id="server-2" value="Srv 2"><label for="server-2">Server 2</label>
</div>
</div>
</div>
<div>
<div>
<textarea name="message" placeholder="Message....."></textarea>
<button type="submit" name="submit">Submit Report</button>
</div>
</div>
jQuery:
$('form.form1').on('submit', function() {
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response){
console.log(response);
}
});
return false; });
PHP:
<?php
if(isset($_POST['name'], $_POST['id'], $_POST['server'], $_POST['message'])){
print_r($_POST);
} ?>
在我用来测试单选按钮的值的数组中,总是使用第二个值,在这段代码中它是 Srv 2。像这样:[server] => Srv 2
解决方案
您应该像这样序列化表单:
$('form.form1').on('submit', function(event) {
event.preventDefault();
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: $(this).serialize(),
success: function (response) {
console.log(response);
}
});
});
推荐阅读
- spring - Spring Boot 中组件之间的 MessageHandler
- python - ImportError:无法从“torch._six”导入名称“PY3”
- regex - 如何获取网站的版权字符串
- tensorflow2.0 - 将图形从 python 导入并运行到 C/C++
- python - Rock-Paper-Scissors python脚本失败
- python - 使用存储在变量中的值时格式说明符无效?
- apache-kafka - Apache Flink 中的事件重试机制
- java - 我应该知道 Set 中元素的顺序吗
- list - ArrayList的转换方法是什么
列出 - ?
- sql - 在另一列中列出具有五个不同值(基于 $_GET)的用户名