2016-08-03 41 views
1

我在頁面中有多個表單。我只需要獲取提交表單的輸入子項。Jquery:獲取僅提交表單的輸入

這是我的代碼(當然它不起作用)。

$('form.modal-form').on('submit',function(e) { 
     e.preventDefault(); 
     var form_errors = 0; 
     $(this).children('input.required-field').each(function(index) 
     { 
      [....] 
    }); 
}); 

非常感謝您

+0

哪裏是你的HTML嗎?什麼是錯誤? – springrolls

回答

1

您可以選擇context的元素。這是jQuery函數的選擇器之後的第二個參數。在那裏傳遞this讓jQuery的搜索您的選擇僅在此context,它會給你只是你正在尋找...元素

$('form.modal-form').on('submit', function(e) { 
    e.preventDefault(); 

    $('input.required-field', this).each(function() { 
     // do your work 
    }); 
}); 

你使用children可能不會在這裏工作,因爲這種功能只會搜索一個節點深入您的選擇器。您可以從.children()切換到.find(),該做什麼工作。

但我仍然希望使用上下文選擇器!

+0

謝謝。它的工作;) – sineverba

+0

不客氣,@sineverba! – eisbehr

2

您需要使用$.fn.find,而不是$.fn.children,只得到直接孩子:

$(this).find('input.required-field').each(function(index) { 
    // ... 
}); 
+0

它的工作原理,謝謝! – sineverba

+0

順便說一句,'$(this).find('input.required-field')'相當於'$('input.required-field',this)'所以選擇你更喜歡的任何東西。 – dfsq

+0

@eisbehr嗯,這是在這種情況下發生的事情:https://github.com/jquery/jquery/blob/305f193aa57014dc7d8fa0739a3fefd47166cd44/src/core/init.js#L94 – dfsq

相關問題