2014-10-28 91 views
0

你好我們假設我在頁面上有兩種形式。如何獲取所選表格的所有元素

現在我想獲取所有輸入元素(即使它們是隱藏的)。

我現在的代碼如下所示:

$("form.prev, form.next").submit(function(e){ 
     e.preventDefault(); 

     var inputs = $(this).filter(':input'); 
     console.log(inputs); 
     var values = {}; 

     inputs.each(function() { 
     values[this.name] = $(this).val(); 
    }); 

    console.log(values); 
}); 

我期待看到他們的鍵和值的輸入元素的列表。但是console.log(values);的結果是空的對象

這裏發生了什麼問題?

+0

'inputs.each(函數(指數,OBJ){...'然後'值[obj.attr ('name')] = $(obj).val();' – 2014-10-28 10:41:57

回答

2

不需要自己做 - serialize()函數是爲此目的而發明的。

$("form.prev, form.next").submit(function(e){ 
    e.preventDefault(); 

    var data = $(this).serialize(); 
    // data is a key/value string, you can now use it in AJAX requests for example 
}); 

jQuery API - Serialize()

1

嘗試這種情況:使用.find()代替.filter()

$("form.prev, form.next").submit(function(e){ 
     e.preventDefault(); 

     var inputs = $(this).find(':input'); 
     console.log(inputs); 
     var values = {}; 

     inputs.each(function() { 
     values[this.name] = $(this).val(); 
    }); 

    console.log(values); 
});