2012-12-14 12 views
5

Ich habe ein jquery date picker Feld, das ich Klonen, wenn ein Benutzer auf eine Add Schaltfläche klickt. Ich möchte die Datumsauswahl für die anschließend hinzugefügten Felder auf dem Bildschirm erscheinen. Gerade jetzt erscheint der Datumsauswahl nur für das erste Feld und not for the added/cloned fields.jquery datepicker funktioniert nicht für geklonte Elemente

Nachdem ich viele Beiträge zu ähnlichen Themen hier überprüft habe, konnte ich in diesem Stadium erreichen. Unten ist mein Code soweit.

<div class="repeatingSection"> 
<a href="#" class="deleteDate" style="display: none;">-Delete</a> 
<input type="text" class="dateListValues" style="position: relative; z-index:100000;" 
     id="dateListValues_1" size="15" /> 
</div> 
<a href="#" class="addDate">+ Add</a> 

JS:

// Add a new repeating section 
$('.addDate').click(function(){ 
    var currentCount = $('.repeatingSection').length; 
    var newCount = currentCount+1; 
    var newID; 
    var lastRepeatingGroup = $('.repeatingSection').last(); 
    var newSection = lastRepeatingGroup.clone(); 
    newSection.insertAfter(lastRepeatingGroup); 
    newSection.find("input").each(function (index, input) { 
     input.id = input.id.replace("_" + currentCount, "_" + newCount); 
     input.name = input.name.replace("_" + currentCount, "_" + newCount); 
     input.value = ""; 
      //removing the additional hasDatepicker class 
     $('#'+input.id).removeClass('hasDatepicker'); 
    }); 

    return false; 
}); 

    $('.dateListValues').each(function(){ 
    $(this).datepicker(); 
    }); 

Dank.

+0

Warum Sie hasDatepicker Klasse entfernt werden? –

+0

früher habe ich es nicht entfernt. Aber lesen Sie es hier http://stackoverflow.com/questions/5788999/jquery-datepicker-on-cloned-elements .. so versucht, dass auch – DarkKnightFan

Antwort

4

Sie müssen das datepicker Plugin auf dem neu erstellten Element initialisieren. Versuchen Sie, diese Zeile direkt vor Ihrer return false;:

newSection.find(".dateListValues").datepicker(); 
+0

ausgezeichnet !! es funktionierte ... Vielen Dank Kumpel .. – DarkKnightFan

+0

müssen noch 2 Minuten warten: P – DarkKnightFan

+0

@DarkKnightFan danke: D –

1

initailize Datumsauswahl in der Klick-Funktion ..

$('.addDate').click(function(){ 
var currentCount = $('.repeatingSection').length; 
var newCount = currentCount+1; 
var newID; 
var lastRepeatingGroup = $('.repeatingSection').last(); 
var newSection = lastRepeatingGroup.clone(); 
newSection.insertAfter(lastRepeatingGroup); 
newSection.find("input").each(function (index, input) { 
    input.id = input.id.replace("_" + currentCount, "_" + newCount); 
    input.name = input.name.replace("_" + currentCount, "_" + newCount); 
    input.value = ""; 
     //removing the additional hasDatepicker class 
    $('#'+input.id).removeClass('hasDatepicker'); 

}); 
    newSection.find(".dateListValues").datepicker(); //here 
    return false; 
}); 
+0

Sie sollten nicht Ihren Code in jede Schleife setzen –

+0

ja .. richtig ... danke ..:) .. bearbeitet .. wie auch immer ich denke, OP bekam eine Antwort .. :) – bipen

+0

danke @bipen sowieso! :) – DarkKnightFan

Verwandte Themen