将 HTML 表单架构保存到 JSON

Posted

技术标签:

【中文标题】将 HTML 表单架构保存到 JSON【英文标题】:Save HTML form schema to JSON 【发布时间】:2015-02-06 04:25:15 【问题描述】:

有没有办法将 html 表单模式保存为 JSON?

例如当我有这样的事情时

<form>
First name:<br>
<input type="text" name="firstname">
<br>
Last name:<br>
<input type="text" name="lastname">
</form>

我怎样才能实现这样的目标:

[
  
    field: 'input',
    type: 'text',
    name: 'firstname'
  ,
  
    field: 'input',
    type: 'text',
    name: 'lastname'
  ,
]

我并不是说它必须是上面的精确输出,但是我怎样才能实现类似的东西呢?

【问题讨论】:

【参考方案1】:

我们的想法是做这样的事情。您可以遍历表单elements 元素集合,并使用每个元素提取必要的信息。

在下面的代码中,我使用了Array.prototype.map 方法,但使用简单的for 循环可能会更方便。它会给你更多的定制空间。

function serializeSchema(form) 
    return [].map.call(form.elements, function(el) 
        return 
            type: el.type,
            name: el.name,
            value: el.value
        ;
    );
;

var form = document.querySelector('form'),
    schema = serializeSchema(form);

alert(JSON.stringify(schema, null, 4));
<form>
    <input type="text" name="firstname" value="Test">
    <input type="text" name="lastname">
    <select name="age" id="">
        <option value="123" selected>123</option>
    </select>
    <input type="checkbox" name ="agree" value="1" checked> agree
</form>

还有一个注意事项。您要实现的目标与 jQuery 的 $.fn.serializeArray 方法非常相似(它不收集 type)。然而,扩展serializeArray 使其也返回元素的type 非常简单。

【讨论】:

以上是关于将 HTML 表单架构保存到 JSON的主要内容,如果未能解决你的问题,请参考以下文章

PHP实现chrome表单请求数据转换为接口使用的json数据

使用 jquery 将表单数据保存到本地 json 文件中

将提交的表单数据保存到 JSON 文件

javascript 将表单提交保存到JSON

javascript 将表单提交保存到JSON

javascript 将表单提交保存到JSON