2017-04-18 81 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