私の質問は、ここで言及されているものと似ています、 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();
});
ここで何が間違っていますか?