Hallo,
Meine Felder haben teilweise eine Vorbelegung mit einem text der beim Drübergehen (OnFocus) weggeht (ein beispiel ist das Suchfeld bei golem.de).
Das Klappt sehr gut. Leider habe ich das problem dass wenn ich mit meinem JavaScript ein BB-Code einfügen möchte, er mir diesen vorgelegten text nicht wegmacht.
function MM_insertString(Form,Field,String) {
Ein Parameter sollte nicht »String« heißen. String ist ein vordefiniertes Objekt, das nicht überschrieben werden sollte.
var FormField=Form+'_'+Field;
var revisedMessage;
var currentMessage;
document.forms[Form].elements[FormField].focus();
currentMessage = document.forms[Form].elements[FormField].value;
alert(currentMessage);revisedMessage = currentMessage+" "+String+" ";
document.forms[Form].elements[FormField].value=revisedMessage;
}
Ich verstehe deine Frage nicht ganz. Es ist anscheinend ein onfocus-Event registriert, bei dem das Feld geleert wird (<input type="text" value="Vorbelegung" onfocus="this.value='';"> oder ähnlich mit textarea). Wenn du nun die focus()-Methode aufrufst, wird der onfocus-Event nicht gefeuert und der zugehörige Handler nicht ausgeführt. Du müsstest also in deiner Funktion überprüfen, ob der aktuelle Wert der Vorbelegung entspricht. Dazu kannst du value und defaultValue vergleichen. Wenn sie identisch sind, leerst du das Formularfeld bzw. setzt currentMessage auf einen leeren String. Dann steht nach dem Ausführen der Funktion der BBCode im Feld ohne die Vorbelegung davor.
Und zwar würde ich gerne den BB-Code string an der Stelle einfügen wo der mauszeiger im text steht. In Foren geht das oft, doch selber bin ich trotz suchen noch nicht auf den trichter gekommen.
http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/ hilft dir vielleicht weiter.
Mathias