Cursorposition nach onclick-Vorbelegung in Textfeld

  • Hallo.

    Ich möchte ein Text-Form-Feld bei einem Onclick-Event mit 3 Buchstaben vorbelegen. (Also <input type='text' onclick="if (this.value=='')this.value='MRN'">) das klappt auch wunderbar, allerdings steht der Cursor dann vor dem MRN....ich hätte ihn aber gerne dahinter, damit man die MRN-Nummer vollständig eingeben kann.

    Jemand vielleicht eine Idee, wie ich das umsetzen kann?

    Vielen dank schonmal.

    Gruß
    Kenny1979

  • Ich hatte ein ähnliches Problem heute und bin beim Suchen auf Deine Frage gestoßen. Ich habe nun endlich eine Lösung: Das TextRangeObjekt!
    (http://msdn.microsoft.com/workshop/autho…j_textrange.asp)

    Das folgende funktioniert bei mir im IE6 (laut msdn gibt es das Textrange-Objekt ab IE4. Firefox kennt das Objekt (leider) nicht ...

    ...
    <input type='text' onclick="vorbelegen(this)">
    ...

    function vorbelegen(inputFeld) {
    if (inputFeld.value == "") {
    var range = inputFeld.createTextRange();
    range.text = "MRN";
    range.select();
    }
    }

  • Zitat von Kenny1979

    Hallo.

    Ich möchte ein Text-Form-Feld bei einem Onclick-Event mit 3 Buchstaben vorbelegen. (Also <input type='text' onclick="if (this.value=='')this.value='MRN'">) das klappt auch wunderbar, allerdings steht der Cursor dann vor dem MRN....ich hätte ihn aber gerne dahinter, damit man die MRN-Nummer vollständig eingeben kann.

    Jemand vielleicht eine Idee, wie ich das umsetzen kann?

    Vielen dank schonmal.

    Gruß
    Kenny1979

    Moin!

    Wenn in dem Feld ohnehin immer "MRN" am Anfang stehen soll, dann gib es doch einfach fest vor, was anderes macht dein Javascript ja auch nicht:

    Code
    <input type='text' value="MRN">


    Warum einfach, wenn es umständlich geht ?

    Wundert sich ...

    Ronald

  • In dem konkreten Fall von Kenny1979 mit dem einfachen Vorbelegen mag das tatsächlich umständlich sein, aber wer weiß, welchen Grund es gibt, die Vorbelegung erst per Click zu machen ...

    Wenn das Inputfeld mit unterschiedlichen Werten einer Selectbox vorbelegt werden soll (das war es nämlich in meinem Fall), um dann weitertippen zu können, muß der Cursor nach hinten. Und da reicht das Setzen von 'inputFeld.value' nicht aus. Per TextRange geht es, genau das macht das Script (das ich für mein Problem auch nicht umständlich finde ...).

  • Da ich eine Endlos-Diskussion über Browser und ihre wechselseitigen Inkompatibilitäten vermeiden möchte, nur eine Bemerkung.
    In der Tat hatte ich zunächst nicht mitgekriegt, das der Firefox es von sich aus "richtig" macht. Aber daher ist es genau deswegen sinnvoll, diesen "Bug" für den IE abzufangen. Mit einer zusätzlichen Browserweiche im Script kann man für FF den Wert "einfach" setzen und das Endergebnis ist dann gleich - das ist doch das, was am Ende zählt.

    Da hat einer nach einer Idee zu einem Problem gefragt (das er offensichtlich mit dem IE hat(te)) - und da gibt es eine Idee, die geht.
    Was wollen wir mehr ?

    Noch frohe Pfingsten.
    Stefan

  • Hallo.

    Sorry, dass ich jetzt erst antworte - hatte Urlaub ;)

    Vielen dank erstmal an "Gast"! Funktioniert einwandfrei im IE

    Vorbelegen wollte ich in diesem Fall nicht so gerne, weil es mehrere dieser Felder gibt, die aber alle optional sind. Daher sollten die nach Möglichkeit leer bleiben, um den Benutzer nicht zu verwirren.


    Vielen Dank nochmal

    Gruß
    Kenny1979