当前位置: 首页 > 知识库问答 >
问题:

如何使用JS更新JS对象以获取表单数据中的更改?

张通
2023-03-14

我有一个JS对象,如下所示。每当表单元素发生任何更改时,我都想更新它。但由于名称大括号“my_object[default][1][quick][position]”没有转换为数组,所以所有输入名称都作为字符串附加。
我有大约100个元素,包括输入、选择、单选、复选框等。我正在寻找一种动态的方法,无论何时更新任何元素,都可以更新对象。

HTML表单元素

<div class="col-12">
  <label class="card">
    <input name="my_object[default][1][quick][position]" class="checkable" value="text-left" type="radio" checked>
      <span class="my-details">
        Left
      </span>
  </label>
</div>

要更新的JS对象

<script>

var my_object ={
    "default": {
        "1": {
            "data_src": "print1.jpg",
            "quick": {
                "a": "12",
                "b": "22",
                "position": "right"
            },
        "2": {
            "data_src": "print2.jpg",
            "quick": {
                "a": "10",
                "b": "20",
                "position": "center"
            }
        }
    }
};

</script>

我所尝试的

$("#submit_btn").click(function (e) {
e.preventDefault();

var formData = $("#myform").serializeArray();
$.each(formData, function () {

    if (my_object[this.name]) {
      if (!my_object[this.name].push) {
        my_object[this.name] = [my_object[this.name]];
      }
      my_object[this.name].push(this.value || '');
    }

});

});

共有1个答案

梁丘翔
2023-03-14

null

var my_object ={
    "default": {
        "1": {
            "data_src": "print1.jpg",
            "quick": {
                "a": "12",
                "b": "22",
                "position": "right"
                },
            },
        "2": {
            "data_src": "print2.jpg",
            "quick": {
                "a": "10",
                "b": "20",
                "position": "center"
            }
        }
    }
};

function updateMe(ths){
  eval($(ths).attr("data-jsonprop")+ "='" + $(ths).attr("value")+"'");
  console.log(my_object);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="col-12">
  <label class="card">
    <input name="radio1" data-jsonprop='my_object["default"]["1"]["quick"]["position"]' class="checkable" value="text-left" type="radio" onchange="updateMe(this)">
      <span class="my-details">
        Left
      </span>
  </label>
  
    <label class="card">
    <input name="radio1" data-jsonprop='my_object["default"]["1"]["quick"]["position"]' class="checkable" value="text-right" type="radio" onchange="updateMe(this)">
      <span class="my-details">
        Right
      </span>
  </label>
</div>
 类似资料:
  • 我曾尝试使用“ChilDeventListener”,但当我第一次初始化侦听器时,它会从数据库中获取最后一行。如果它没有更新,则不应获取它。我只想要对象时,它是更新或新添加。我做到了, 提前谢谢你。

  • 本文向大家介绍JS使用for in有序获取对象数据,包括了JS使用for in有序获取对象数据的使用技巧和注意事项,需要的朋友参考一下 需要遍历对象,将key value分为两个数组,可以使用forin,但是获取到的对象中的属性及属性值排列是无序的, 目的是要按顺序取出对象中的key和value值。 实现效果: 比如接口返回的对象格式: 需要转换的格式: 实现代码: 实现思想: 还是先使用fori

  • 我正在尝试使用axios或fetch将react组件的表单数据发送到服务器。我写的所有代码都失败了(在onSubmit中)。我的服务器端口是5000。我已经在服务器中设置了bodyParser。js也是。 应用程序。使用(bodyParser.json());应用程序。使用(bodyParser.urlencoded({extended:false})); 下面是我在node中编写的代码。js。请

  • 我一直在使用图表。js图表。js文档 我有一张显示多条线的图表。该图是单位时间内药物浓度的变化图,我想在各种场景下运行该图,如实时、x2、x4、x8等,因此,当下一秒到来时,我希望该图使用新的计算数据进行更新,然后刷新/更新图表。 问题是图表在for循环完成之前不会刷新,我希望图表每秒显示更新的数据。 文档中说update()应该执行以下操作。。。 在图表实例上调用update()将使用任何更新的

  • 我目前正在一个变量上运行,如下所示: 当我在控制台中查看时,我看到以下数据: 我想访问键,但是控制台返回。