2012-03-27 12 views
0

Ich habe eine Tabelle, in der ich Zeilen durch Klonen hinzufügen. Allerdings kann ich OnFocus nicht den Text löschen, wenn eine Zelle angeklickt wird. Code-Fragment (I Javascript lerne von Sitz-of-Hose, da ich das vor mir 2 Wochen abgeladen hat):onfocus() scheitert an einem geklonten Element

function AddRow() 
{ 
    var mytable=document.getElementById("newSystem"); 
    var rowClone=document.getElementById("sysrow").cloneNode(true); 

    rowClone.cells[0].innerHTML='<input type="text" name="SysName[]" value="host.myhouse.com" onFocus="this.value=\'\';this.onfocus=\'\';" />'; 

    myTable.appandChild(rowClone); 
} 

Die ursprüngliche Reihe, von dem der Klon abgeleitet ist:

<tr id="sysrow"> 
<td> 
    <input type="text" name="SysName[]" value="host.myhouse.com" onFocus="this.value='';this.onfocus='';" />; 
</td> 
</tr> 

Der onFocus auf das Original funktioniert gut. Wenn der onFocus in das Klonscript eingefügt wird, wird nichts getan (es wird keine neue Zeile eingefügt). Wenn ich den onFocus entferne, wird die geklonte Zeile eingefügt, aber der Text wird beim Fokussieren nicht gelöscht.

Habe ich etwas falsch oder funktioniert onFocus nicht mit Klonen.

+0

onfocus eine Funktion irgendwo im Skript definiert ist? Könnten Sie diesen Code posten? –

+0

'this.onfocus ='? ... welcher Zweck hat diese Anweisung * inside * ein Inline-Attribut eventhandler von * 'onfocus' * Macht' this.onclick' Sinn, wenn es innerhalb von 'onclick' liegt? – zer00ne

Antwort

0

Vielleicht gibt es keine neue Zeile, weil Sie einen Tippfehler bei myTable.appandChild(rowClone); haben? Eigentlich

, sollte es sein myTable.appendChild(rowClone);

+0

Entschuldigung wegen des Tippfehlers .. Ich hatte manuell zwischen den Maschinen neu eingeben; Problemhafte Maschine befindet sich in einem privaten Netzwerk. Wenn ich die onFocus-Anweisung entferne, funktioniert die Zeileneinfügung, aber die Beispieleingabe bleibt erhalten, wenn Sie die Zelle auswählen. Mit dem onFocus wird eine neue Zeile NICHT eingefügt. – cricket058