2016-09-26 2 views
0

종종 ajax 및 jQuery를 사용하여 양식을 보낼 때 양식 $(this).serialize() 또는 $(this).serializeArray()을 사용하여 양식을 JSON 개체로 변환합니다.정수와 문자열을 가진 양식 데이터를 보내는 방법이 있습니까?

<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의 모든 값이 번호를 입력하여 폼 타입 string.I의 한 점이다 이 양식에는 숫자가 JSON에 있다고 가정하는 입력 내용이 필요합니다.

+0

정말로 ... 어떤 특정 문제입니까? 원인? – charlietfl

+0

아마도 입력 유형이있는 데이터 속성을 추가하여 서버에서 구문 분석 할 수 있습니까? – user3791775

답변

0

이 문제는 다음 사용자 지정 코드를 사용하십시오하려면 다음을 사용

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

및 테스트 :

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

serialize("myform"); 
+0

조금 더 수정해야했지만 감사합니다. – CasualCoder3

+0

당신은 매우 환영합니다, 어떤 사람이 동일한 질문을하므로 최종 답변을 알 수 있습니까? –

관련 문제