Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将选定单选按钮的值保存到字典_Javascript_Jquery - Fatal编程技术网

Javascript 将选定单选按钮的值保存到字典

Javascript 将选定单选按钮的值保存到字典,javascript,jquery,Javascript,Jquery,我试图保存选中单选按钮的值,并将该值存储到dict中,以JSON的形式发送回服务器。对于所有其他输入类型,我参考它们的数据名和val()来获取键和值 我无法对单选按钮值执行此操作,因此我获取单选按钮的值并手动存储它。问题是,它不仅更新了显示的特定记录的最新值,而且用这个新值覆盖了所有以前的值,我不希望这样 这是JQuery: radioVal='school'; $('.metwhere').on('change', function() { radioVal = $('inpu

我试图保存选中单选按钮的值,并将该值存储到dict中,以
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>&thinsp;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>&thinsp;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>&thinsp;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>&thinsp;Hotel</b></label><br>
&thinsp;展会
&thinsp;航班
&thinsp;火车
&thinsp;酒店

如何修改此项,使其仅使用
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;
最后一个值覆盖前一个值的唯一方法是使用相同的键。因此,您的问题似乎是所有值都使用相同的键。仔细检查您的输入、它们的ID、它们的数据名等,以确保它们都是唯一的。在你的

$('.contact').each(function () {
以前

data['metAt']=radioVal;


查看值是什么。

能否在
$('.metwhere')中共享html?on('change',function()){
index的值是多少?index计算动态创建这些html元素的按钮被单击的次数hanks,但是我已经检查了,但是每次添加新的
div
元素时,我的索引值都在增加:
index=$('#contacts div')。length+1;
@user94628添加
console.log(数据)
数据['metAt']=radioVal;
之前和之后查看它显示的内容。显示了被覆盖的radioVal数据,但我的所有密钥都是唯一的。您可以在此处发布第一个和第二个console.log的结果吗?在以FF和Chrome不显示的方式查看console.log时出现问题
console.log(data)