我在按下Add new(或whatver)按钮后添加了新的表单元素,创建了表单,然后是: http://phpmysqlmania.blogspot.com/p/dynamic-table-row-inserter.html
例如,我有:
<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中:
<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 each”......但是我可以让它只为1个元素工作,而不是第二个,第五个,hundreths ...我想我已经被困在如何使用了循环...; -O
有关如何使用动态创建的元素正确处理任何“事物”(计算,事件)的任何建议吗?
这是我从建议中尝试过的: http://jsfiddle.net/AftpY/15/
但问题是 - 音量没有更新,它只是在1个选择元素被更改时更新,但它不会“在飞行中”更新...而且你可以看到还有其他选择元素..
编辑:有什么想法吗?我真的被这个问题困扰了 - &gt;我无法理解(参见Jsfiddle链接): *)为什么在每个singleorfamily1选择之后不会刷新计数信息,但是当我改变第一次出现singleorfamily1时(在代码中看不到/找不到问题); *)如何计算混合选择值的结果:来自singleorfamily1&amp;来自selectedplan1的plan1,来自selectedplan2&amp;来自selectedplan2等的plan2 ......
TNX!
答案 0 :(得分:2)
使用JQuery选择器
jQuery('#row select').on("change",function(){
var singlecount = (jQuery("#row :selected[value='single']").length);
var familycount = (jQuery("#row :selected[value='family']").length);
});
答案 1 :(得分: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 强>
答案 2 :(得分: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;
答案 3 :(得分:0)
您可以在不同的事件中触发它,但重点是您只需检查所选的选项值,如
$('select option:selected').each(function(){
if ($(this).val() == 'single'){
i++;
};
if ($(this).val() == 'family'){
k++;
};
});
正在使用 Fiddle