javascript - 如何创建动态 html 表单的创建 JSON 对象(表单元素)?

标签 javascript jquery json forms dom

尝试创建动态 HTML 表单并保存它们,我可以使用 bootstrap 创建动态表单,但在提交时我很难创建此动态表单的 JSON。 我想保存这样的东西

{
 "form" :
    [

        {
            "name" : "username",
            "id" : "txt-username",
            "caption" : "Username",
            "type" : "text",
            "placeholder" : "E.g. user@example.com"
        },
        {
            "name" : "password",
            "caption" : "Password",
            "type" : "password"
        },
        {
            "type" : "submit",
            "value" : "Login"
        }
    ]
}

我不确定我该如何实现。

最佳答案

应该这样做:

function getAttrs(DOMelement) {
    var obj = {};
    $.each(DOMelement.attributes, function () {
        if (this.specified) {
            obj[this.name] = this.value;
        }
    });
    return obj;
}

$("form").each(function () {
    var json = {
        "form": []
    };
    $(this).find("input").each(function () {
        json.form.push(getAttrs(this));
    });

    $(this).find("select").each(function () {
        var select = getAttrs(this);
        select["type"] = "select";
        var options = [];
        $(this).children().each(function () {
            options.push(getAttrs(this));
        });
        select["options"] = options;
        json.form.push(select);
    });

    console.log(json);
});

演示:http://jsfiddle.net/j1g5jog0/

更新:http://jsfiddle.net/j1g5jog0/5/

关于javascript - 如何创建动态 html 表单的创建 JSON 对象(表单元素)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563856/

相关文章:

javascript - 添加来自另一个 react 组件的值

jquery - 如何在点击时激活和非激活

javascript - 鼠标悬停不显示隐藏的 div

javascript - jQuery 事件监听器多次触发

javascript - Angularjs ng-show 基于回调

javascript - 如何将 Javascript 文件对象+数据发送到 MVC 6 Controller - ASP.NET 5

javascript - 如何从标题中的链接访问 'rel'?超媒体链接关系

php - 使用 PHP 将 JSON 结果作为 1 到多个关系 Mysql 查询返回

使用jq在cli上解析Json

javascript - 如何在 android webview 中使用 js 获取特定的 <div >'s data by it' s id?