我有一个动态生成新行的表,我需要从动态生成的selectbox中获取值。但我得到的只是'undefined'
。如果我尝试从动态<input>
获取值,那么一切正常。问题只在于选择框。
这是我的代码,用于从用户
获取值$("#myTable tr").each(function(index, element){
if(index === 0){ // skip the table head
return true;
}
var option = $(element).find("#course option:selected");
if(option.val() == "-1"){ // should skip empty row but doesn't work either
return true;
}
$(element).children().each(function(index, element){
if(index === 0){
activities[activities.length] = $(element).find("input").val();
}else if(index === 1){
activityIds[activityIds.length] = option.val();
activityType[activityType.length] = option.attr("type");
}
});
});
JSFiddle http://jsfiddle.net/8rrmr/
感谢您的帮助
答案 0 :(得分:1)
尝试这样的事情,FIDDLE
更改
// can't find #course
var option = $(element).find("#course option:selected");
以强>
var option = $(element).find("select option:selected");
答案 1 :(得分:1)
试试这个,
activityIds[activityIds.length] = $(element).find('select').val();
activityType[activityType.length] = $(element).find('input').attr("type");
答案 2 :(得分:1)
在你的addNewActivityRow函数中,你没有给你的选择框提供#course id。实际上,在这种情况下你不应该使用id,但是因为id对于页面必须是唯一的类。更改以下行:
var option = $(element).find("#course option:selected");
为:
var option = $(element).find("select option:selected");
它会起作用,但是如果要有多个实例,最好从元素中删除所有ID