我设计了一个动态表,用户可以添加更多行。 并且在输入上有一个函数.change() 对于它的第一行运行,但对于下一个(克隆的)元素,该函数不运行
我的小提琴是here
代码如下
$(document).ready(function(){
$("#btnAddItemAssignee").click(function(e){
e.preventDefault();
$(".oAssignee:last").clone().insertAfter(".oAssignee:last");
$(".oAssignee:last").find("#txtAssigneeType").val("");
$(".oAssignee:last").find("#txtAssigneeId").val("");
});
});
$("body #txtAssigneeType").change(function(){
if ($(this).val()=="Individu")
{
console.log($("body #txtAssigneeType").length);
alert("call me");
}
});
答案 0 :(得分:0)
替换$(".oAssignee:last").clone().insertAfter(".oAssignee:last");
与
$(".oAssignee:last").clone("true").insertAfter(".oAssignee:last");
答案 1 :(得分:0)
这是因为您为所有下拉列表使用相同的ID .. #txtAssigneeType ..在添加新组时更改它..
例如:添加随机ID #txtAssigneeType1, #txtAssigneeType2, #txtAssigneeType3
答案 2 :(得分:0)
.clone()
接受两个论点。第一个用于"withDataAndEvents"
,第二个用于"deepWithDataAndEvents"
。
默认情况下,这两个值均为false。
将您的陈述更改为此,它将克隆数据和事件。
$(".oAssignee:last").clone(true).insertAfter(".oAssignee:last");
答案 3 :(得分:-1)
我找到了解决方案,必须在true
内添加.clone(true)
。