2015-07-12 89 views
-6

转换表单数据JSON

<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>

任何一个可以以这样的方式,当我将提交这种形式的表单数据将在JSON格式提交写HTML代码。

+3

服务器代码是什么样的?为什么期待JSON? –

回答

0

尝试第二input type="text"name="age"age="name",利用.serializeArray()$.post()

$("form").submit(function(e) { 
 
    e.preventDefault(); 
 
    var data = $(this).serializeArray(); 
 
    console.log(data); 
 
    // $.post("/path/to/server", data);  
 
});
<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>

3

甲纯JavaScript的解决办法是:

var form = document.getElementsByTagName('form')[0]; 

form.addEventListener('submit',function(event){ 
    event.preventDefault(); 
    var data = { 
     "name":this.name.value, 
     "age":this.age.value 
    }; 

    console.log(data); 
}); 
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)回路中断时下一个()返回的对象进行等于真正, 但是这个对象也包含在表单 这是大多数最后一个元素关键个案提交按钮,所以如果你没有一个表单中的最后一个元素将被排除,容易修复。