2014-04-07 66 views
0

中選擇元素,我創建的形式與按新增(或whatver)按鈕,然後後添加新的表單元素: http://phpmysqlmania.blogspot.com/p/dynamic-table-row-inserter.html如何計算選擇HTML使用jQuery

例如,我有:

<div id"row"> 
    <select id="singleorfamily1" style="width: 180px;" name="singleorfamily" > 
    <option value="0">Select Single or Family</option> 
    <option value="single">Single</option> 
    <option value="family">Family</option> 
    </select> 
    <select id="selectedplan1" name="selectedplan" style="width: 110px;" > 
<option value="0">Select Plan</option> 
<option value="plan1">Plan1</option> 
    <option value="plan2">Plan2</option> 
</select> 
    </div> 

當我按下添加新行,其添加的新選擇元素插入行格:

<div id"row"> 
    <select id="singleorfamily1" style="width: 180px;" name="singleorfamily1" > 
    <option value="0">Select Single or Family</option> 
    <option value="single">Single</option> 
    <option value="family">Family</option> 
    </select> 
    <select id="selectedplan1" name="selectedplan1" style="width: 110px;" > 
<option value="0">Select Plan</option> 
<option value="plan1">Plan1</option> 
    <option value="plan2">Plan2</option> 
</select>  
    <select id="singleorfamily2" style="width: 180px;" name="singleorfamily2" > 
    <option value="0">Select Single or Family</option> 
    <option value="single">Single</option> 
    <option value="family">Family</option> 
    </select> 
    <select id="selectedplan2" name="selectedplan2" style="width: 110px;" > 
<option value="0">Select Plan</option> 
<option value="plan1">Plan1</option> 
    <option value="plan2">Plan2</option> 
</select> 
    </div> 

我試圖做的工作(沒有成功)以及我需要實現的 - 在這種情況下如何計算選定的單個和選定的族值(選擇元素是動態的 - 它們可以是1或1000或更多)。光棍節:X,家庭:Y.

jQuery('#singleorfamily'+i).change(function() 

我試過「for」循環後,它們應該被計算,「每jQuery的」 ......但我可以得到它的工作只是對於1元素,而不是第二,第五,hundreths ...我想我被幹擾如何correclty使循環...; -O

如何正確處理任何「事情」(計算,事件)動態創建元素?

這是我已經從建議嘗試: http://jsfiddle.net/AftpY/15/

但問題是 - 量不更新,它只是1個時選擇有修改更新,但它「飛」不更新。 ..在那裏你可以看到,還有其他選擇元素...

編輯:任何想法?我很困擾這個問題 - >我無法理解(參見Jsfiddle鏈接): *)爲什麼計數信息在每個singleorfamily1選擇後沒有被刷新,但是當我改變singleorfamily1的第一次出現時(不能看到/找到問題在代碼中);從singleorfamily1 &計劃1從selectedplan1,有多少家庭從selectedplan2 &計劃2從selectedplan2等多少單打...

TNX: *)怎麼算混合選擇值的結果!

+2

您可以發佈您當前的代碼? – Scimonster

+0

只要選擇被更改並且使用jquery獲取選定類的所有元素並使用計數,就可以將行爲添加到行中。 – Banana

回答

1

這個工作對我來說:

$('#row select').change(function() { 
    var s = 0, 
     f = 0; 
    $('#row select').each(function() { 
     if ($(this).val() == 'single') s++; 
     if ($(this).val() == 'family') f++; 
    }) 
    console.log(s, f) 
}) 

jsFiddle example

+0

行!這可能是部分解決方案......但如果有更多選擇不同選項的元素,該怎麼辦?正是因爲這只是一個例子,我只把它放在了1個選擇元素類型中。但實際上我有另一個選擇元素(和其他選項)。那麼,我怎麼才能只使用1個選擇元素類型使用名稱/ ID?我需要將他們分別統計爲每個家庭類型,計算每種計劃類型,計數單打和計劃1,單人計劃2,家庭計劃1,家庭計劃2等... –

2

使用jQuery選擇

jQuery('#row select').on("change",function(){ 
     var singlecount = (jQuery("#row :selected[value='single']").length); 
     var familycount = (jQuery("#row :selected[value='family']").length); 
    }); 

http://jsfiddle.net/QPcjB/13/

1

這裏只是展示一個簡單撥弄你怎麼能在某個時間點取得當前的款項,而不是變更事件。http://jsfiddle.net/Aus2v/

//returns the number of selects with "single" chosen 
$('select :selected[value="single"]').length; 

//returns the number of selects with "family" chosen 
$('select :selected[value="family"]').length; 
0

您可以啓動它在不同的事件,但主要的一點是,你只是檢查所選的選項值一樣

$('select option:selected').each(function(){ 
    if ($(this).val() == 'single'){ 
     i++; 
    }; 
    if ($(this).val() == 'family'){ 
     k++; 
    }; 
}); 

工作Fiddle