javascript - 从表单生成 JSON

标签 javascript jquery json

我想生成像这样的JSON数据

{
    "first_name": "fname",
    "last_name": "lname",
    "zip": "123456",
    "subjects": [
        {
            "name": "bee"
        },
        {
            "name": "ms"
        },
        {
            "name": "edc"
        }
    ]
}

来自以下表格

 <form action="" method="post">
    first Name:<input type="text" name="first_name"/> <br/>
    last name:<input type="text" name="last_name"/> <br/>
    Widget URL:<input type="text" name="zip" /> <br/>

    Support:<br/>
    span3:<input type="checkbox" name="name" value="bee"/><br/>
    span6:<input type="checkbox" name="name" value="ms"/><br/>
    span12:<input type="checkbox" name="name" value="edc"/><br/>

    <p><input type="submit" /></p>
</form>

使用 jquery。对于以下 JSON 结构,此表单结构是否正确?我需要脚本来向用户提示 json

最佳答案

提交表单后,您可以改用 php 将 JSON 格式输出给用户。

使用

<?php echo json_encode($_POST); ?>

或者如果你真的需要使用 jQuery。使用以下代码:

<form action="" method="post">
first Name:<input type="text" name="first_name"/> <br/>
last name:<input type="text" name="last_name"/> <br/>
Widget URL:<input type="text" name="zip"/> <br/>

Support:<br/>
span3:<input type="checkbox" name="subjects" value="bee"/><br/>
span6:<input type="checkbox" name="subjects" value="ms"/><br/>
span12:<input type="checkbox" name="subjects" value="edc"/><br/>

<p><input type="button" id="btnsubmit" value="submit"/></p>
</form>
<pre id="json_output"></pre>

jquery 代码将是:

$(document).ready(function(){

    var formObject = {};

    $('#btnsubmit').click(function(){

       var formInputString = $('form').serialize();
       var inputParameters = formInputString.split('&');
       var nameValues = [];
        $.each(inputParameters,function(i){
            var inputParameter = inputParameters[i].split('='); // 0 - keyName , 1 - keyValue
            var keyName = inputParameter[0];
            var keyValue = inputParameter[1];
            if(keyName == 'subjects'){
                nameValues.push({ name : keyValue});
                formObject[keyName] = nameValues;
            }else{
                formObject[keyName] = keyValue;
            }

        });

        var myString = JSON.stringify(formObject);

        $('#json_output').text(myString);
    });

});

在这里试试:http://jsfiddle.net/XGFg6/

关于javascript - 从表单生成 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581568/

相关文章:

JQuery 将类添加到克隆元素

javascript - 带有无限轮播的 Internet Explorer 7+8 jQuery 错误

java - 如何将json数组拆分成字符串?

javascript - string.replace 奇怪的行为

javascript - 使用纯 javascript 修复窗口滚动上另一个容器内的容器

javascript - !!~(不是 not not tilde/bang bang tilde)如何改变 'contains/included' 数组方法调用的结果?

javascript - 如何将 JSON 字符串转换为可读的字符串?

JavaScript/jQuery Flash AS3 交互

javascript - 有没有办法在 Mongoose 模式方法中运行 for 循环?

javascript - 将值存储到 localStorage 的顺序是同步的吗?