2017-04-18 23 views
0

我想通過JQuery將表單中所有輸入的值轉換爲一個數組,該數組將通過AJAX通過GET發送。JQuery - 如何遍歷所有表單輸入?

我嘗試以下,但它沒有工作:

function gatherFormData(){ 
    $('#formId input, #formId select').each(
    function(index){ 
     var result = []; 
     for(var i =0; i < $(this).length; i++){ 
     document.write(input.attr('name') + "-" + input.attr('name') + "<br />"); 
     result.push(input.attr('name')); 
     result.push(input.val()); 
     } 
    return result; 
    } 
    ); 
} 

我怎樣才能得到所有的人的價值?

+1

嘗試'FORM.find( ':輸入')' – Rayon

+1

['.serializeArray()'](HTTPS://api.jquery .com/serializeArray /)已經這樣做,即$('#formId')。serializeArray()' – Satpal

回答

1

嘗試以下方式:

var jsonObj = []; 
 
$(":input").each(function(){ 
 
var key = $(this).attr('name'); 
 
var val = $(this).val(); 
 
item = {} 
 
item [key] = val; 
 

 
jsonObj.push(item); 
 
}); 
 

 
console.log(jsonObj); 
 
// Now pass it like jsonObj[0], jsonObj[1]......
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="text" name="name" id="txtName" value="John" /> 
 
    <input type="text" name="email" id="txtEmail" value="[email protected]" /> 
 
    <div> 
 
    <input type="checkbox" name="active" id="chkIsActive" checked /> 
 
    </div> 
 
    <input type="submit" value="qweqsac" /> 
 
</form>

+0

謝謝!但我實際上想要將它們全部收集到「獲取」格式中,以便通過AJAX發送。 – Bob

+0

然後你需要建立一個包含所有這些值的對象。 – Mamun

+1

嗨,鮑勃,代碼片段中的變化的代碼可能會幫助你。 – Mamun