2013-05-08 104 views
0

我試圖訪問ajaxForm成功回調中的表單元素。表單元素作爲第四個元素傳遞(請參閱:http://malsup.com/jquery/form/#options-object - > success)。訪問另一個對象中的jQuery對象

所以,如果我通過console.log(form)測試它,它的工作原理。我得到一個jQuery對象,並且可以通過form[0].

訪問形式,但console.log顯示我,[0]下有更多的元素,形式的投入。我可以通過form[0][0] or form[0][1]等訪問它們。

但我怎樣才能一次獲得所有的子對象?

我的情況是,我不知道輸入的數量,所以我需要通過像foreach這樣的東西訪問元素的所有輸入。但與form[0]我只是得到窗體的DOM元素。

這有點複雜,但我希望你能理解我的問題。

編輯: 這是我從得到的console.log(形式):

[form#doku_newrowJsonForm.doku_newrowJsonForm, context: form#doku_newrowJsonForm.doku_newrowJsonForm, jquery: "1.9.1", constructor: function, init: function, selector: ""…] 
0: form#doku_newrowJsonForm.doku_newrowJsonForm 
0: input 
1: input#AdrowAdtableId 
2: input#AdrowCustomerId 
3: input#AdrowContent19.input-small 
4: input#AdrowContent20.input-small 
5: input#AdrowContent21.input-small 
6: input#AdrowContent22.input-small 
7: input#AdrowContent23.input-small 
8: input#AdrowContent24.input-small 

形式[0]剛纔給我的DOM元素和形式[0] .find(':輸入')給了我遺漏的類型錯誤:對象#有沒有方法‘發現’......

EDIT2 要明確:我想例如輸入#AdrowAdtableId。我可以通過表單[0] [1]訪問它。但我不知道我在表格中輸入的長度。它是動態的。所以這將是偉大的,做一些像form [0] .each()。但形式[0]給了我DOM元素,而不是jQuery對象...

+0

要清楚的question..Elaborate吧.. – 2013-05-08 11:53:36

+0

請張貼的確切米在這個時刻看到你的問題有點令人困惑,這種形式的arkup(至少包括一個或兩個輸入的開始)。 – 2013-05-08 13:30:57

回答

1

只需使用find()。如果你想在表單內的所有輸入(和它本身的形式可以訪問如form[0])只是做:

$(form[0]).find(":input") 

如果form如果已經是一個jQuery對象下面是稍微好一點:

form.eq(0).find(":input") 

注我使用:input僞類來獲取所有類似輸入的元素,而不僅僅是<input>

+0

這似乎是一個很好的解決方案,但它不起作用。下面的解釋。 – 2013-05-08 12:36:00

+0

你是什麼意思的「不工作」。它有什麼作用? – fog 2013-05-08 12:37:10

+0

我剛剛編輯了我的第一篇文章。對不起,延遲...我得到一個Uncaught TypeError – 2013-05-08 12:40:53

1

如果你使用jQuery的形式,你所感興趣的貼值,你可以做到以下幾點:

var form = $('form'); 
form.ajaxForm({ 
    beforeSubmit: function(arr, $form, options) { 
     form.data('form-values', arr); 
    }, 
    success: function() { 
     console.log(form.data('form-values')); // logs the submitted values 
    } 
}); 
1

您可以訪問所有的輸入表單上與.each()

$(form[0]).find(':input').each(function{){ 
    var myInputValue = $(this).val(); 
}); 

如果你需要知道具體類型的輸入看到這一點:How to get input type using jquery?

+0

不幸的$(form [ 0])。find ...不起作用。$(form [0])返回與「form」本身完全相同的值。 – 2013-05-08 13:02:47