将表单数据转换为JSON

时间:2015-07-12 14:01:40

标签: javascript json html5

<html>
  <head></head>
  <body>
      <form name="abc" action="#" method="post">
        
        Name: <input type="text" name="name"><br>
        Age : <input type="text" age="name"><br>
        <input type="submit"><br>
        </form>
    
        </body>
</html>

任何人都可以这样编写HTML代码,当我提交此表单时,表单数据将以JSON格式提交。

3 个答案:

答案 0 :(得分:3)

纯JavaScript解决方案将是:

baz

答案 1 :(得分:0)

尝试使用name="age"替换age="name" input type="text".serializeArray()$.post()

&#13;
&#13;
$("form").submit(function(e) {
  e.preventDefault();
  var data = $(this).serializeArray();
  console.log(data);
  // $.post("/path/to/server", data);     
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>

<form name="abc" action="#" method="post">

  Name:
  <input type="text" name="name">
  <br>Age :
  <input type="text" name="age">
  <br>
  <input type="submit">
  <br>
</form>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

检查此功能

var formDataToObject = function (formElm) {
        var formObj = new FormData(formElm),
            result = {},
            values = formObj.values(),
            keys = formObj.keys(),
            key;


            while (!(key = keys.next()).done) {
                result[key.value] = values.next().value;
            }

        return result;
    };

这里有两点说明:

1)不支持多个选择选项,它将返回最后选择的选项!!

2)当完成的next()返回对象等于 true 时,循环中断, 但此对象还包含表单中最后一个元素 在大多数情况下,提交按钮,所以如果表单中没有一个,则最后一个元素将被排除,易于修复。