我正在尝试保存所选单选按钮的值,并将该值存储到字典中,以将其作为 JSON
发送回服务器。对于所有其他输入类型,我引用它们的数据名称和 val() 来获取键和值。
我无法对单选按钮值执行此操作,因此我获取单选按钮的值并手动存储它。问题是,它不仅更新显示的特定记录的最新值,而且用这个新值覆盖所有以前的值,这是我不想要的。
这是 JQuery:
radioVal='school';
$('.metwhere').on('change', function() {
radioVal = $('input[name=met' + index + ']:checked').val();
});
$(document).on('click', '.send', function(e) {
e.preventDefault();
var contactDataToSend = [];
$('.contact').each(function () {
var data = {};
$(this).find(':input[data-name]').each(function () {
data[$(this).data('name')] = $(this).val();
});
data['metAt']=radioVal;
contactDataToSend.push(data);
});
和 html:
<input type="radio" class="metwhere" name="met' + index + '" value="tradeshow" id="tradeshow' + index + '"><label for="" class="control-label text-muted"> <b> Tradeshow</b></label><br>
<input type="radio" class="metwhere" name="met' + index + '" value="flight" id="flight' + index + '"><label for="" class="control-label text-muted"><b> Flight</b></label> <br>
<input type="radio" class="metwhere" name="met' + index + '" value="train" id="train' + index + '"><label for="" class="control-label text-muted"><b> Train</b> </label> <br>
<input type="radio" class="metwhere" name="met' + index + '" value="hotel" id="hotel' + index + '"><label for="" class="control-label text-muted"><b> Hotel</b></label><br>
如何修改它以仅使用 radioVal
不覆盖以前的记录:或者是否有一种方法可以使用 data-
属性仅捕获选定的记录单选按钮值?
最佳答案
将其复制粘贴到您的开发人员工具控制台:
var data = {};
data["a1"] = 1;
data["b1"] = 2;
data;
data["c1"]=3;
data;
var data2 = {};
data2["a"] = 1;
data2["b"] = 2;
data2;
data2["a"]=3;
data2;
最后一个值覆盖先前值的唯一方法是它们使用相同的 key 。所以你的问题似乎是所有值都使用相同的键。仔细检查您的输入、它们的 ID、数据名称等,以确保它们都是唯一的。在你的
$('.contact').each(function () {
之前
data['metAt']=radioVal;
做
console.log(data)
查看值是什么。
关于javascript - 将选定单选按钮的值保存到字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383617/