2016-09-26 53 views
0

通常當使用ajax和jQuery發送表單時,方法$(this).serialize()$(this).serializeArray()用於將表單轉換爲JSON對象。問題是,在JSON所有值的類型string.I已與具有數字輸入的形式:有沒有辦法發送具有整數和字符串的表單數據?

<label for="name">name:</label> 
<input class="w-input input" id="name" name="name" placeholder="Enter your name" type="text" required> 

<label for="age">Age</label> 
<input class=input" id="age" name="age" placeholder="Enter your age" type="number" required> 

有沒有辦法仍然變換形式爲JSON,但保持類型,因爲它是必需的形式,這意味着仍然有我的輸入,假設數字是JSON中的數字。

+0

不是真的......它有什麼具體問題造成? – charlietfl

+0

可能會添加一個數據屬性與輸入類型,以便您可以解析它在您的服務器上? – user3791775

回答

0

如果你想這種行爲,請使用以下的自定義代碼:

JS

function serialize(form_id) { 
    var inputs = document.getElementById(form_id).getElementsByTagName("input"); 
    var result = [] 
    for (var i = 0; i < inputs.length; i++) { 
     var value = inputs[i].type == "number" ? inputs[i].value * 1 : inputs[i].type; 

     var obj = { 
      "value": value 
     }; 
     if (inputs[i].name) 
      obj["name"] = inputs[i].name; 
     result.push(obj); 
    } 
    return result; 
} 

和相同的HTML代碼:

<form id="myform" name="myform"> 
    <label for="name">name:</label> 
    <input class="w-input input" id="name" name="name" placeholder="Enter your name" value="Amr" type="text" required> 

    <label for="age">Age</label> 
    <input class="input" id="age" name="age" placeholder="Enter your age" value="19" type="number" required> 
</form> 

和測試使用:

serialize("myform"); 
+0

它需要多一點修改,但謝謝。 – CasualCoder3

+0

你很受歡迎,有什麼變化,所以任何人都有同樣的問題可以知道最終答案? –

相關問題