我的问题与这里提到的类似, Duplicate jquery ui problem。但在我的问题中,我没有使用动态表单集脚本。
如何在默认表单集和动态生成的表单集中使用引导 jquery datepicker 插件?
这是我正在做的生成表最后一行的克隆(因为我不熟悉 jquery)
$("p").live("click", function() {
//clone last row to variable
var row = $('#savings_table tbody>tr:last').clone(true);
//clear text boxes
$("td input:text", row).val("");
//clear selection boxes
$("select option:selected", row).attr("selected", false);
//add row
row.insertAfter('#savings_table tbody>tr:last');
count = parseInt($("#id_form-TOTAL_FORMS").val(), 10)
var count = count + 1;
$("#id_form-TOTAL_FORMS").val(count);
$(row).each(function() {
$(this).find('td').each(function(){
var input_name = $(this).find("input").attr('name')
var input_id = $(this).find("input").attr('id')
var input_class = $(this).find("input").attr('class')
if($(this).find("input").attr('name') !== undefined)
{
new_input_name = set_attr(input_name);
new_input_id = set_attr(input_id);
$(this).find("input").attr('name',new_input_name)
$(this).find("input").attr('id',new_input_id)
}
if($(this).find("select").attr('name') !== undefined)
{
var select_name = $(this).find("select").attr('name')
var select_id = $(this).find("select").attr('id')
new_select_name = set_attr(select_name);
new_select_id = set_attr(select_id);
$(this).find("select").attr('name',new_select_name)
$(this).find("select").attr('id',new_select_id)
}
});
});
//$( ".start_datepicker" ).datepicker();
return false;
});
function set_attr(prop)
{
var result_name = prop.split('-');
var inc_value = parseInt(result_name[1], 10) + 1;
var new_name = result_name[0]+'-'+inc_value+'-'+result_name[2];
return new_name
}
我尝试通过为日期字段分配相同的类名并使用称为 jquery datepicker 插件的相同类名,并且工作正常。但是如果动态添加表单集,那么总是会选择最后一个日期字段。
$(function() {
$( ".start_datepicker" ).datepicker();
});
我在这里做错了什么?