2015-07-12 86 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)迴路中斷時下一個()返回的對象進行等於真正, 但是這個對象也包含在表單 這是大多數最後一個元素關鍵個案提交按鈕,所以如果你沒有一個表單中的最後一個元素將被排除,容易修復。