1

我的问题与这里提到的类似, 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();
 });

我在这里做错了什么?

4

0 回答 0