2017-05-28 60 views
0

我有2個選項卡。在每個選項卡中,都有一個包含多個字段的單獨表單。字段是引導程序收音機或複選框按鈕組。jQuery將'更改'爲多個組中的字段範圍

每個部分可以有任意數量的字段。

我試圖完成的是使用jQuery綁定('更改')到每個部分的最後幾個字段,以便只有當該部分的最後幾個字段完成後,纔會顯示下一部分。

我正在綁定到每個部分的所有字段,因此當用戶更改當前部分的第一個字段時,會顯示下一部分。我想改變這種情況,只有當最後或倒數第二個字段完成後才顯示下一部分。

通用代碼結構示例:https://jsfiddle.net/uqvhw7sb/4/

基本示例:

<tab1> 
<formA> 
<groupA> 
<input a[]> 
<input a[]> 
<input a[]> 

<input b[]> 
<input b[]> 
<input b[]> 

<input c[]> 
<input c[]> 
<input c[]> 
</groupA> 

<groupB> 
<input d[]> 
<input d[]> 
<input d[]> 

<input e[]> 
<input e[]> 
<input e[]> 

<input f[]> 
<input f[]> 
<input f[]> 
</groupB> 
</formA> 
</tab1> 

<tab2> 
Same kind of thing, possible same field names 
</tab2> 

回答

0

您可以使用slice(-2)到集合中的最後2個元素進行篩選。所以,通過所有的組迴路,查找輸入集合,組內和篩選集合

喜歡的東西:

$(".fgroups").each(function(){ 
    var $group = $(this); 
    $group.find('input:checkbox').slice(-2).on("change", function() { 
     $group.next().toggle(this.checked); 
    }); 
}); 
+0

感謝。但是,只有在最後一個複選框組的最後兩個輸入之一發生更改時纔會觸發。所以,如果我用上面的例子點擊c [0],什麼都不會發生。點擊c [1]或c [2]即可使用。另外,你能解釋切換(this.checked)嗎?不知道爲什麼那裏。我在我的測試中用removeClass()替換。 – Chris

+0

我遵循你所說的話......在每個部分的最後2個......你並沒有具體什麼構成了一個部分。如果你想在每個按鈕組中的最後2個選項改變第一個選擇符以匹配那些 – charlietfl

+0

這與我承認的詞組有些混淆,因爲有一組字段(部分)和一組字段(複選框值)。你的例子很乾淨而且很接近,但是對於這個問題並不完全準確。但是,它確實使我找到了一個運行良好的解決方案。不知道在這裏做什麼.... – Chris

相關問題