簡體   English   中英

對象序列化就像表單數據序列化

[英]Object serialize like form data serialize

我不確定我是否缺少某些東西,或者那是行不通的,就像我認為的那樣。 我有一些要拆分的表單數據。 為此,我認為我可以使用我想要的值創建另一個對象:

let data = $('form').serializeArray();
let answers = {};
data.forEach(function(element) {
    // check if the element contains a answer input value
    if(element.name.indexOf('answer') !== -1) {
        answers[element.name] = element.value;
    }
});

console.log($('form').serialize()); 
// output:  answer%5B1%5D=1&answer%5B2%5D=2&answer%5B4%5D=3&answer%5B3%5D=4&sort=relevance&query=&area=..... etc
console.log(answers.serialize());   
// output: is not a function.

再說一遍。 我以為您可以像將表格數據那樣將對象序列化為字符串以進行數據存儲。

有人可以向我解釋我做錯了什么,和/或為什么序列化不起作用?

answers不是jQuery對象,因此它沒有serialize()方法。 如果您希望像使用jQuery的序列化一樣獲得名稱-值對字符串,則可以使用jQuery的param方法

 answers = { "answer1":1, "answer2":2 }; console.log(jQuery.param(answers)); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

否則,如果您只是想序列化JSON的answers ,以便以后可以重新創建它,則只需使用JSON.stringify

  answers = { "answer1":1, "answer2":2 }; console.log(JSON.stringify(answers)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM