jQuery: Zeile duplizieren aber ID ändern?

leo-magic

Aktives Mitglied
Thread Starter
Dabei seit
24.12.2004
Beiträge
1.178
Reaktionspunkte
4
Hallo zusammen!

Benutze ein JQuery Plugin AddRow ( http://www.examplet.buss.hk/jquery/table.addrow.php ) um dynamisch neue Zeilen hinzufügen zu können. (an ein Formular)

Das Plugin scheint einfach die letzte Zeile zu duplizieren, leider so auch die IDs der Felder. Dies führt zu einem Absturz von Internet Explorer 7...

Hat jemand vielleicht eine Lösung?

Code:
	callBack=(options && $.isFunction(options)) ? options :null; 
		options=$.extend({
			maxRow:null,
			ignoreClass:null,
			rowNumColumn:null,
			autoAddRow:false,
			oddRowCSS:null,
			evenRowCSS:null,
			inputBoxAutoNumber:false,
			inputBoxAutoId:false,
			displayRowCountTo:null,
			maxRowAttr:null,
			hideFirstOnly:null,
			showFirstOnly:null,
			cloneClass:null,
			evenRowAttr:null,
			oddRowAttr:null,
			rowCountAttr:null,
			autoNumAttr:null,
			autoIdAttr:null


autoIdAttr:null klingt interessant... Nur wie anwenden?

Danke und Gruss,
Léo
 
setze halt die ID manuell nach dem duplizieren, oder klappt das auch nicht?

$("element").addrow().attr("id","neueID");
 
Hmm, könnte ich versuchen, nur wie finde ich das richtige Element? (da ja alle Kopien die gleiche ID haben und sich so nicht unterscheiden lassen...)

Danke!
Léo
 
Ok, das ganze ist ein bisschen komplexer...

Erezeugt wird die neue (gleiche) ID durch den Datepicker...
Und zwar habe ich, damit der Datepicker (und die FormValidation) auch in den neu, dynamisch erstellten Feldern funktioniert, diesen Code beim Erstellen einer neuen Zeile eingefügt:

Code:
$(".alternativeRow").btnAddRow(function(row){

	$(".datepicker").removeClass("hasDatepicker").removeAttr("id").datepicker();
	
	$("#form1").validationEngine('attach');
	$('input:text').setMask();

.alternativeRow ist der Button, um eine neue Zeile zu erstellen.

Danke für die Hilfe!
Léo


PS:
Was mich etwas wundert:
Die erste "Kopie" (der Zeile) hat andere ID's, ab der zweiten Kopie sind dann alle gleich wie die ID der Kopie 1...

Also:

Erste fixe Zeile : ID 1
Kopie 1: ID2
Kopie2: ID2
Kopie3: ID2
etc...
 
Zuletzt bearbeitet:
Muss nochmals eine Antwort posten, da sich die Situation unterdessen etwas verändert hat...

IE7 stürzt immer noch ab, beim hinzufügen einer Zeile.
Also bei dem Code:

Code:
	$(".alternativeRow").btnAddRow({oddRowCSS:"oddRow",evenRowCSS:"evenRow",rowNumColumn:"rowNumber"},function(row){
	
	 // new rows datepicker need to be re-initialized
    $(".datepicker:last").each(function(){

      // if the current input has the hasDatpicker class
      if($(this).hasClass("hasDatepicker")){
        var this_id = $(this).attr("id"); // current inputs id
        var new_id = Number(this_id) +1; // a new id
        $(this).attr("id", new_id); // change to new id
        $(this).removeClass('hasDatepicker'); // remove hasDatepicker class
        $(this).datepicker(); // re-init datepicker
      }

    });
	
	
	$("#form1").validationEngine('attach');
	$('input:text').setMask();
 
});

Ich habe NULL Ahnung weshalb...
Hat mir jemand vielleicht einen Tipp, woran es liegen könnte oder wie ich das herausfinden kann?

Danke!!
Léo
 
Zurück
Oben Unten