2013-11-21 19 views
0

http://jsfiddle.net/LGLtY/無法比擬/找到所有選擇在克隆的父元素 - Jquery的

林認爲目標還是爲了找到所有的一組克隆的div內的選擇選項參考家長選擇。我想要做的就是將#rooms div中所有下拉列表中的所有值相加,並在選定一定數量後創建警報。我可以克隆所需的部分,但只能在第一部分中使用。

這些變量是設置onlclick

var num = $('.clonedInput').length;  
var newNum = new Number(num + 1); 
var $newElem = $('#field' + num); 
var newElemCloned = $newElem.clone(true).prop('id', 'field' + newNum); 

我已經試過這些整合到功能啓動:

$('#rooms').find('select').change ...... 

我我用正確的方式去這樣或會更好使用除了變化以外的東西來找到所有選擇後的元素?任何幫助讚賞。

+1

像http://jsfiddle.net/arunpjohny/wezKU/1/? –

+0

D'oh!很好,謝謝。活動代表團! – lxm7

+0

是的...如果它解決了問題,我會將其作爲回答發佈 –

回答

1

DEMO

這裏的關鍵是使用jQuery on讓你的後續select■找重視他們的事件處理程序。

$("#room").on("change","select",function(){ 
    //Rest of your stuff here 
    ... 

接下來要做的是在添加新房間時觸發此事件。
在添加功能結束時添加$("select","#room").first().trigger("change");
first()非常重要,因爲您不需要多個警報。

+0

這更好,因爲它會觸發事件委派以進行後續複製。我之前使用過這些,我現在需要了解它們以便將來使用! – lxm7

0

需要使用事件代表團!

$('#room').on('change', 'select', function() { 
    var sum = 0; 
    $('#room select').each(function() { 
     sum += Number($(this).val()); 
    }); 
    if (sum > 5) { 
     $(this).siblings().prop('disabled', 'disabled'); 
     $('.addRoom').prop('disabled', 'disabled'); 
     $('button[type="submit"]').prop('disabled', 'disabled').addClass('disabled'); 
    } else { 
     $(this).siblings().prop('disabled', false); 
     $('.addRoom').prop('disabled', false); 
     $('button[type="submit"]').prop('disabled', false).removeClass('disabled'); 
    } 
}); 

演示:Fiddle