簡體   English   中英

如何在提交表單之前獲取 JSON 中的所有元素值

[英]How to get form all element value in JSON before submit form

我將我的表格名稱JSON中獲取數據JSON 當我提交 HTML 表單以提供服務時,它工作正常,但是當我在提交之前獲取數據時,我無法獲取正確的數據。

所有 HTML 呈現動態,因此沒有固定的xy值。 這是同一個演示。

 function validateData(){ var isValidate = false; console.log($('form').serializeArray()); console.log($('form').serialize()); return isValidate; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form onsubmit="return validateData();" action="./send" method="post"> <input type="hidden" name="a[x][Id]" value="hello x"> <input type="radio" name="a[x][istest]" value="true"> Yes <input type="radio" name="a[x][istest]" value="false"> No <textarea name="a[x][msg]"></textarea> <input type="hidden" name="a[y][Id]" value="hello y"> <input type="radio" name="a[y][istest]" value="true"> Yes <input type="radio" name="a[y][istest]" value="false"> No <textarea name="a[y][msg]"></textarea> <input type="hidden" name="id" value="hello form"> <input type="submit" value="Submit "/> </form>

我 jQuery 返回以下結果

查詢結果

當我檢查服務器時,它正在發送正確的 JSON

{ a:
   { x: { Id: 'hello x',istest : 'true', msg: '' },
     y: { Id: 'hello y',istest : 'false', msg: '' } },
  id: 'hello form' }

我做了很多搜索,但沒有得到正確的答案。

我自定義了 JSON,它向我返回了我想要的相同 JSON。

var formValues = $('form').serializeArray();

var formJSON = {};
formValues.map(function(index, value){
    var name = index.name;
    name = name.replace(/\[/g,',');
    name = name.replace(/\]/g,'');
    name = name.split(',');
    if(name.length == 3){
        if(formJSON[name[1]] != undefined)
            formJSON[name[1]][name[2]] = index.value;
        else
            formJSON[name[1]] = {[name[2]] :index.value};
    }
});

console.log(formJSON);

暫無
暫無

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

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