Pete: Umlaut im input-Feld

Hallo,

ich habe folgenden Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>blabla</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action=''>
Bitte f&uuml;llen Sie alle
<input type='text' length='10'>
<input type='hidden' value='Lücken'>
aus.
<input type="button" value="Eingaben pr&uuml;fen" onclick="lueckentext(this.form)">
<input type="button" value="L&ouml;sung anzeigen" onclick="lueckentext_l(this.form)"></form><br>
</body></html>

Das Problem ist nun, dass der Browser (hier Firefox) die korrekte Lösung  (jeweils das hidden-Feld) vermurkst, da er das ü als  darstellt. Damit kann ich die Eingabe des Anwenders aber nicht mehr prüfen.

Ideen?

Ich habe drei ISOs ausprobiert:iso-8859-1, iso-8859-2 UTF-8 --- jeweils ohne Auswirkung.

Pete

  1. Hallo,

    ich habe folgenden Code:

    <form action=''>
    Bitte f&uuml;llen Sie alle
    <input type='text' length='10'>
    <input type='hidden' value='Lücken'>
    aus.
    <input type="button" value="Eingaben pr&uuml;fen" onclick="lueckentext(this.form)">
    <input type="button" value="L&ouml;sung anzeigen" onclick="lueckentext_l(this.form)"></form><br>
    </body></html>
    Das Problem ist nun, dass der Browser (hier Firefox) die korrekte Lösung  (jeweils das hidden-Feld) vermurkst, da er das ü als  darstellt. Damit kann ich die Eingabe des Anwenders aber nicht mehr prüfen.

    Wie wird geprüft? Was wird vermurkst? Deinem Formular fehlen in allen INPUT-Elementen die name-Attribute. Da aber bei Submit name-value-Paare abgesendet werden, wird Dein Formular _nichts_ absenden. Würde es etwas absenden, würde es, bei charset=ISO-8859-1 den Wert "Lücken" URL-codiert als L%FCcken, bei charset=UTF-8 URL-codiert als L%C3%BCcken absenden. Die serverseituge Logik muss das dann entsprechend decodieren.

    Sollte es um die Javascript-Funktionen lueckentext(formobject) bzw. lueckentext_l(formobject) gehen, brauchten wir deren Quellcode, um helfen zu können.

    viele Grüße

    Axel

    1. Zum einen: Ich habe nicht die ganze Seite gepostet, denn da fehlen ja nun ein paar Sachen(css und js-Dateien).

      Es wird überhaupt nichts(!) serverseitig gemacht. Ich brauche auch kein name-attribut, da ich es so mache (kein Originalcode):

      function lueckentext(formID) {
        alert(formID.element[0].value);
        //etc.
      }

      Ich möchte einfach die Eingabe des Anwenders mit dem Wert in hidden-Feld vergleichen:

      function lueckentext(formID) {
        if (formID.element[0].value == formID.element[1].value) {
           alert('Die Eingabe war richtig');
        }

      }

      Pete

      1. Hallo,

        Es wird überhaupt nichts(!) serverseitig gemacht. Ich brauche auch kein name-attribut, da ich es so mache (kein Originalcode):

        function lueckentext(formID) {
          alert(formID.element[0].value);

        ^Error. Das Array element[] existiert nicht.

        //etc.
        }

        Ich möchte einfach die Eingabe des Anwenders mit dem Wert in hidden-Feld vergleichen:

        function lueckentext(formID) {
          if (formID.element[0].value == formID.element[1].value) {

        ^Error. Das Array element[] existiert nicht.
                                                          ^Error. Das Array element[] existiert nicht.

        alert('Die Eingabe war richtig');
          }
        }

        Folgendes funktiioniert bei mir im Opera7.23. Etwas anderes habe ich jetzt hier leider nicht.

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd">
        <html>
        <head>
        <title>Vergleich</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
        <!--
        function lueckentext(formID) {
          alert(formID.elements[0].value);
          alert(formID.elements[1].value);
          if (formID.elements[0].value == formID.elements[1].value) {
             alert('Die Eingabe war richtig.');
          } else {
             alert('Die Eingabe war falsch.');
          }
        }
        //-->
        </script>
        </head>
        <body>
        <form action="#">
        <p>
        <input type="text" value="">
        <input type="hidden" value="Lücken">
        <input type="button" name="Vergl" value="Vergleiche" onclick="lueckentext(this.form)">
        </p>
        </form>
        </body>
        </html>

        viele Grüße

        Axel

  2. hi,

    Damit kann ich die Eingabe des Anwenders aber nicht mehr prüfen.

    das kannst du sowieso nicht, da deine aufgerufenen javascript-funktionen gar nicht referenziert werden. (und du hast ja offenbar die komplette seite gepostet ...)

    gruß,
    wahsaga

    --
    [ Hier könnte Ihre Werbung stehen! ]