Wertübergabe an Textarea nur "kurzzeitig"

progafrog

Mitglied
Hey, ich habe hier ein wenig skript um zwei Zeichen zu ersetzen. Aber wenn das Skript ausgeführt wurde, dann erscheint es vielleicht eine Sekunde in der Textarea aber verschwindet dann wieder. Wodrann kann das liegen?

Code:
var text ='';
var textUpdate ='';
text=document.forms[0].eingabe.value;
textUpdate=text.replace('<','&lt;');
textUpdate=textUpdate.replace('>','&gt;');
document.getElementById("eingabe").value=textUpdate;
document.getElementById("eingabe").focus();


Mfg
 
Der Fehler muss woanders liegen. Das Script funktioniert bei mir im FF und IE8.
Wobei die "replaces" mMn so richtig wären. Mit deiner schreibweise wird immer nur das jeweils erste vorkommen ersetz.
Javascript:
textUpdate=text.replace(/</g,'&lt;');
textUpdate=textUpdate.replace(/>/g,'&gt;');
 
hi,
danke für die schnelle Antwort. Vielleicht sollte ich erwähnen, das ich das bisher als Adobe Air Anwendung nutze. Das hier ist mein Formular übrigens:
Code:
<form accept-charset="utf-8" onsubmit="entity()" align="center" id="form">
		<div align="center">
		<textarea name="eingabe" cols="54" rows="18" style="background-color:#363636; color:white;" id="eingabe"> </textarea>
		</div><br />
		<input type="submit" name="umwandeln" value="Umwandlern"/>
		</form>
 
Geh ich recht in der Annahme das dein javascript code die entity() Funktion darstellt die beim onsubmit aufgerufen wird?
Dann fehlt ganz einfach nur ein return false damit das formular nicht gesendet wird.
Javascript:
onsubmit="entity(); return false;"

oder

Javascript:
function entity(){
var text ='';
var textUpdate ='';
text=document.forms[0].eingabe.value;
textUpdate=text.replace('<','&lt;');
textUpdate=textUpdate.replace('>','&gt;');
document.getElementById("eingabe").value=textUpdate;
document.getElementById("eingabe").focus();

return false;
}

[...]
onsubmit="return entity();"

Wobei du ( so wie ich das sehe ) eigentlich garkein Formular bräuchtest.
Eine Textarea und ein <input type="button" onclick="entity();" ...> würden völlig ausreichen und du könntest dir auch das return sparen.
 
Sehe ich das richtig, du führst diese Ersetzung aus, wenn das Formular abgesendet wird? Mal abgesehen davon, dass eine solche Ersetzung serverseitig passieren sollte (Die clientseitige Überprüfung lässt sich leicht umgehen), wäre das der Grund, wieso der Inhalt verschwindet. Nach dem absenden eines Formulars, werden alle Felder zurückgesetzt.

Edit: Zu spät
 
Super ihr seid echte Helden ; ) !
Nun funktioniert alles. Ich habe noch nicht so viel mit Javascript gearbeitet und kannte es nur so aus php, dass man die Eingaben mit Hilfe eines Formulares verarbeiten kann. Danke für die schnelle Hilfe. Einen schönen Abend wünsch ich noch !
 

Neue Beiträge

Zurück