Laser: Anführungszeichen verbieten??

Tach

ich halt mih kurz! Wie kann ich den in JavaScript in der Eingabe in ein Feld die " (Anführungszeichen ) verbieten??

Laser

  1. Hallo Laser,

    Du kannst beim Verlassen des Feldes (onblur()), beim Uebermitteln der Form (onsubmit()) oder beim Eintrag in das Feld (onkeydown(), onkeypress(), onkeyup()) zB. mit indexof() ueberpruefen, ob ein Ausrufezeichen getippt wurde und diese dann loeschen oder eine Fehlermeldung ausgeben. Die onkeyXXX-Handler sind wohl die komfortabelste Loesung.
    Die Eventhandler findest du hier http://de.selfhtml.org/javascript/sprache/eventhandler.htm, indexof hier http://de.selfhtml.org/javascript/sprache/eventhandler.htm

    Gruß,

    Dieter

    1. Jup ich versteh! Nur mir is jetzt aufgefallen, das ich es nicht verbieten kann, da die Eingabe über ein anderes externes Programm (worauf ich keinen Zugriff hab ) funktioniert! Das hier ist nur die Ausgabe über eine Variabel. Jetzt muss er darin erkennen wo die falschen " sind.

      1. Hi!

        Ich bin bei deiner Problemberschreibung nicht sicher, ob du wirklich die Eingabe von Anführungszeichen verbieten willst...
        Leider hast du nicht geschrieben, welchen Sinn das haben soll.
        Wenn es darum geht, daß die Eingaben vielleicht in eine Datenbank gesetzt werden und die Anführungszeichen dort stören, dann solltest Du sie entweder serverseitig escapen lassen oder du entfernst sie (serverseitig).
        Und wenn es sich nur um eine clientseitige Funktion handelt, dann schätze ich, daß die Anführungszeichen auch beim Klick auf den Submit-Button des Formulars mit einer JS-Funktion entfernt werden können ( onsubmit="replaceQuotes();" ).

        Gruß, rob

        1. Hi!

          Ich bin bei deiner Problemberschreibung nicht sicher, ob du wirklich die Eingabe von Anführungszeichen verbieten willst...

          Ja du hast schon recht! Ich hab ja in meinem 2ten Post geschrieben, dass sie über eine Variabel clientseitig ausgegeben werden!

          Leider hast du nicht geschrieben, welchen Sinn das haben soll.

          Es wird nicht der komplette Text ausgegeben, sondern nur bis zu dem ".

          Und wenn es sich nur um eine clientseitige Funktion handelt, dann schätze ich, daß die Anführungszeichen auch beim Klick auf den Submit-Button des Formulars mit einer JS-Funktion entfernt werden können ( onsubmit="replaceQuotes();" ).

          Ich brauch ja kein extra Button kann ja auch so funktionieren! Aber was ist replaceQuotes() ??

          1. Es wird nicht der komplette Text ausgegeben, sondern nur bis zu dem ".

            aha. Ja, sowas dachte ich mir schon... Du übergibst den eingegebenen String mit den Quotes direkt an document.write() oder sowas?
            Du solltest deine Anführungszeichen escapen...

            Ich brauch ja kein extra Button kann ja auch so funktionieren! Aber was ist replaceQuotes() ??

            Eine Funktion... Sollte nur verdeutlichen, das du das eine Funktion aufrufen sollst, die dir " durch " ersetzt (oder halt entfernt).
            Beim Klick auf den submit-Button wird halt eine Funktion aufgerufen, die deine Quotes ersetzt... Die mußt du dir natürlich noch selber schreiben...
            Aufruf irgendwie so:
            <form name="bla" method="post" action="blubb" onsubmit="replaceQuotes();">

            Schau mal in SelfHTML im JS-Teil nach replace() bzw. nach dem RegEx-Objekt und lies dich da mal ein. Das sollte dir wohl weiterhelfen.

            Gruß, rob

          2. Hi,

            Ich bin bei deiner Problemberschreibung nicht sicher, ob du wirklich die Eingabe von Anführungszeichen verbieten willst...

            Es gab keine Problembeschreibung, es gab auch keine Fehlerbeschreibung, es gab nur die Frage nach dem genauem Rezept für eine Behandlung.

            Ja du hast schon recht! Ich hab ja in meinem 2ten Post geschrieben, dass sie über eine Variabel clientseitig ausgegeben werden!

            Ja, das kann ein wichtiges Detail sein (ist es höchstwahrscheinlich auch), ist aber, so als Solitär nicht zu gebrauchen.

            Leider hast du nicht geschrieben, welchen Sinn das haben soll.

            Es wird nicht der komplette Text ausgegeben, sondern nur bis zu dem ".

            Das ist nicht der Sinn, sondern scheint eine Fehlerbeschriebung zu sein.

            Ich brauch ja kein extra Button kann ja auch so funktionieren!

            Aus diesen beiden Sätzen versuche ich mal das Problem zu extrahieren, wie ich es verstehe:

            Es soll eine Ausgabe eines Programmes unbekannter Länge und (fast) unbekannter Zusammensetzung in eine Javascript(?)-Variable gepackt werden und die soll dann in als HTML(?)-Knoten ausgegeben werden. Der HTMNL-Knoten ist hier ein Eingabefeld ("input"|"textarea"?), das spielt aber weiter keine Rolle mehr.

            Ich versuche mich auch mal in der Fehlerbeschreibung:

            Wenn die Ausgabe besagten Programmes in ein Eingabefeld geschrieben werden soll, steht nur der Teil der Ausgabe bis zum erstem Anführungszeichen (einschließlich?) im Eingabefeld.

            Ist das beides so korrekt? Wenn robs Vermutung stimmt ist es wohl tatsächlich so korrekt.

            Aber was ist replaceQuotes() ??

            Die Funktion, die Du derart formuliert hast, das die Anführungszeichen durch etwas anderes -- hier: nichts --  ersetzt.

            so short

            Christoph Zurnieden