javascript - 将表单数据保存到序列化数组 Javascript 后重新填充表单

标签 javascript jquery html forms

我正在创建一个我希望用户能够编辑的表单。用户将填写表格、保存该表格、用下一个条目填写表格、保存该表格等。每次保存表格时都会创建一个可点击的 div,以便用户可以返回并查看他们的输入以确保他们在最终提交所有表格之前都是正确的。我已经能够保存表单数据:

    var formArray = $('form#popsetForm').serializeArray();

我的问题:我现在想在用户单击 div 时用 formArray 中的数据填充表单。是否有一个简单的命令可以让我只提供数组作为输入,它会自动填写表格?下面不是真正的代码,但我希望存在。

    $('form#popsetForm').populate(formArray)

最佳答案

我不知道是否已经存在解决方案,但像这样的解决方案应该适用于 serializeArray

function restoreForm(form, formArray) {
  formArray.forEach(function (pair) {
    var selector = `input[name="${ pair.name }"], textarea[name="${ pair.name }"]`
    var input = $(form).find(selector)
    input.val(pair.value);
  })
}

https://jsfiddle.net/aycnx0gd/4/

或者对于普通的 ol' formData

function restoreForm(form, formData) {
  for (var key of formData.keys()) {
    var selector = `input[name="${ key }"], textarea[name="${ key }"]`
    var input = $(form).find(selector)
    var newVal = formData.get(key)
    input.val(newVal);
  }
}

https://jsfiddle.net/aycnx0gd/2/

关于javascript - 将表单数据保存到序列化数组 Javascript 后重新填充表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516960/

相关文章:

带或不带括号的 javascript window.onload 事件处理程序

javascript - 通过Node.js服务HTML5

javascript - Typescript Resolve Observable 实体

javascript - jQuery 淡出时间与不同结果混淆

html - 如何将列表项文本和列表项图像放在同一行?

javascript - 有没有办法让 Apache Bench 测试提供给 URL 的所有资源的响应时间?

jquery - 如何自动设置光滑轮播的高度

带滚动条的 HTML Canvas

html ->* 做什么?

javascript - 传入未定义的目的是什么?