H²O: Der Rest des Eingabefeldes soll wiedergegeben werden.

Hallo.

Unten seht ihr das Script. Sobald ein Wort vorkommt wird direkt eine bestimmte Antwort gegeben. Schreibt man z.B. "Nachricht 1" ins obere Textfeld (es kann auch noch mehr drin stehen) steht im unteren "Antwort 1". Wie mache ich es nun. Denn wenn das Sript nun z.B. nach "hallo" sucht, und eingegeben wird: "hallo computer" gibt er z.B. "Hi." zurück. Wie mache ich es jetzt, dass er das computer übernimmt und dann "Hi computer." schreiben würde.

Ich denke, dass ist mal eine der schwereren Fragen, die ich stelle.

Vielen Dank H²O

Das Script:

<html>
<head>

<script type="text/javascript">
<!--
function MachKlein() {
 var neu = document.Test.Eingabe.value.toLowerCase();
 document.Test.Eingabe.value = neu;
}
//-->
</script>

</head>
<body>
<center>
<br>

<script type="text/javascript">
function test() {

//Wörter, die irgendwo vorkommen müssen

var wert = document.forms[0].elements[0].value;
if (wert.indexOf("Nachricht 1")>-1){
            document.forms[0].elements[0].value = "";
            document.forms[0].elements[1].value = "Antwort 1";
            document.forms[0].elements[0].focus();
            return false;
}

var wert = document.forms[0].elements[0].value;
if (wert.indexOf("halllo")>-1){
            document.forms[0].elements[0].value = "";
            document.forms[0].elements[1].value = "Hi.";
            document.forms[0].elements[0].focus();
            return false;
}

}
</script>

<table bgcolor="#0000FF">
<form method="POST" action="" name="Test" onSubmit="return test()">
<tr>
<td>Was???</td>
<td><input type="text" size="30" name="Eingabe"></td>
</tr>
<tr>
<td>Antwort:</td>
<td><input type="text" size="30"></td>
</tr>
<tr>
<td colspan=2><center><input type="submit" value="abschicken" onClick="MachKlein()"></center></td>
</tr>
</form>
</table>
<br>
</center>

</body>
</html>

  1. Hallo.

    Ich hoffe ihr habt mich verstanden. Ansonsten werde ich es nochmal verdeutlichen: Der Rest des Eingabefeldes soll übernommen werden und in das untere geschrieben werden.

    Kennt da jemand einen Link? Ich habe hier in SELFHTML schon mal ein Script gesehen:

    Oben war das Eingabefeld und darunter ein Text, der dem Eingabefeld entspach:
              ________________
    Eingabe: |Hallo.__________|
              __________________
    Ausgabe: |                  |
             |____HALLO.________|

    Hier war jetzt, ich glaube mit CSS, ein Text gemacht, der genau dem oberen entspach.

    Also wenn oben Hallo. steht, steht das unten auch.

    Kennt noch jemand den Link. Ich habe schon alles durchforstet.

    Vielen Dank H²O

    1. Hi

      Ich hoffe ihr habt mich verstanden. Ansonsten werde ich es nochmal verdeutlichen: Der Rest des Eingabefeldes soll übernommen werden und in das untere geschrieben werden.

      Dazu musst du erst mal den "Rest" des Eingabefeldes extrahieren, wobei dir vermutl. eine dieser Funktionen weiterhilft: http://selfhtml.teamone.de/javascript/objekte/string.htm und dann den Rest in dein Anwortfeld schreiben, in das Du ja auch jetzt schon die Antwort schreibst:

      document.forms[0].elements[1].value = "Antwort 1" + rest;

      fertig :-)

      HTH, eeye

      --
      [ ] <- Nail here for new Monitor.
      1. Hi

        Dazu musst du erst mal den "Rest" des Eingabefeldes extrahieren,

        meinst du mit extrahieren definieren oder was ???

        Ich kenne mich mit so deutschen Fachbegriffen nicht so aus.

        Sorry

        H²O

        1. Tach

          Dazu musst du erst mal den "Rest" des Eingabefeldes extrahieren,
          meinst du mit extrahieren definieren oder was ???

          Ich kenne mich mit so deutschen Fachbegriffen nicht so aus.

          Pardon, war ja auch leicht missverständlich von mir.

          Ich meinte natürlich den "Rest" der Eingabe extrahieren, also das was in dem Eingabefeld steht:
          Beispielsweise gibt der Benutzer deiner Seite ein: "Hi computer"
          Nun überprüfst du ob "Hi" vorkommt und gibst dann "Hallo" aus.
          Was fehlt ist der "Rest", und den musst du aus deiner Eingabe extrahieren (entspricht hier in etwa 'ausschneiden'). Damit wäre rest = " computer" und das dann an die Ausgabe dranhängen.

          Hoffe jetzt ist es klarer :)

          Sorry

          np

          Grüsse, eeye

          --
          [ ] <- Nail here for new Monitor.
          1. Hi

            OK. Jetzt ist alles klar.

            Meinst du diese Seite könnte mir dabei helfen. Ich bastle schon an dem Script, aber ich schaffe es nicht. Naja ich probiere es weiter.

            Hier die Seite:http://selfhtml.teamone.de/javascript/objekte/regexp.htm#allgemeines meinst du die bringt mir was?

            H²O

            1. Hi

              Meinst du diese Seite könnte mir dabei helfen. Ich bastle schon an dem Script, aber ich schaffe es nicht. Naja ich probiere es weiter.
              Hier die Seite:http://selfhtml.teamone.de/javascript/objekte/regexp.htm#allgemeines meinst du die bringt mir was?

              Na, mit RegExpressions geht das mit sicherheit auch... und nich _viel_ mehr! Ist aber in deinem Fall der totale Overkill, würde ich also nicht empfehlen.

              Du hast ja deine Eingabe (zB: "Hallo computer").
              Was du willst ist einen Teil herausschneiden -> http://selfhtml.teamone.de/javascript/objekte/string.htm#substr
              Nun musst du nur noch rauskriegen von wo bis wo... dabei sollten http://selfhtml.teamone.de/javascript/objekte/string.htm#length und http://selfhtml.teamone.de/javascript/objekte/string.htm#index_of helfen

              Grüsse, eeye

              --
              [ ] <- Nail here for new Monitor.
              1. Hallo

                Na, mit RegExpressions geht das mit sicherheit auch... und nich _viel_ mehr! Ist aber in deinem Fall der totale Overkill, würde ich also nicht empfehlen.

                Hast Recht. Ich habe schon viel ausprobiert, aber sobald da ein Buchstabe oder Leerzeichen vor dem "Hallo computer" steht kannst du das Ganze knicken.

                Du hast ja deine Eingabe (zB: "Hallo computer").
                Was du willst ist einen Teil herausschneiden -> http://selfhtml.teamone.de/javascript/objekte/string.htm#substr

                Super Idee, daran habe ich noch gar nicht gedacht.

                Nun musst du nur noch rauskriegen von wo bis wo... dabei sollten http://selfhtml.teamone.de/javascript/objekte/string.htm#length

                Aber, wie soll ich das machen. Er muss das "Hallo" finden und das dahinter muss er ausschneiden. Kein Problem. Außer man schreibt noch etwas davor. Dann würde er von dem folgenden Wort nicht mehr alles interpretieren.
                Wie soll ich eigentlich rauskriegen, wie groß das Wort nach "Hallo" ist.

                und http://selfhtml.teamone.de/javascript/objekte/string.htm#index_of helfen

                Index of ist schon fest mit eingeplant. Da weiß ich auch schon, wie ich das mache.

                Naja. Ich probiere jetzt selber mal ein bisschen aus. Ich bin aber gleich wieder da.

                H²O

                1. Hallo H²O,

                  Aber, wie soll ich das machen. Er muss das "Hallo" finden und das dahinter muss er ausschneiden. Kein Problem. Außer man schreibt noch etwas davor. Dann würde er von dem folgenden Wort nicht mehr alles interpretieren.
                  Wie soll ich eigentlich rauskriegen, wie groß das Wort nach "Hallo" ist.

                  Das brauchst Du gar nicht:
                  var text = "bla Hallo H²O!";
                  var neu = text.replace(/Hallo/, "Hi"); // Findet Hallo und ersetzt es durch Hi

                  http://selfhtml.teamone.de/javascript/objekte/string.htm#replace

                  Grüße
                  Andreas

                  --
                  "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
                  (Rich Cook)
              2. krze korrektur:

                Na, mit RegExpressions geht das mit sicherheit auch... und nich _viel_ mehr!

                sollte natürlich "und nOch _viel_ mehr" heissen.

                Grüsse, eeye

                --
                [ ] <- Nail here for new Monitor.
                1. Hi

                  Na, mit RegExpressions geht das mit sicherheit auch... und nich _viel_ mehr!
                  sollte natürlich "und nOch _viel_ mehr" heissen.

                  Bei mir klappt es aber nicht:

                  <html><head>
                  <script type="text/javascript">
                  <!--
                  function Ausgabe(Wert)
                  {
                   var Ausdruck = /(Hallo)\s(\w.+)/;
                      if  Ausdruck.exec(Wert); {
                        document.forms[0].elements[1].value = RegExp.$2 + ", " + RegExp.$1;

                  }

                  }
                  //-->
                  </script>
                  </head><body>

                  <table
                  <form action="" name="Test">
                  <tr>
                  <td>du:</td>
                  <td><input name="User" value="Vorname Zuname"></td>
                  </tr>
                  <tr>
                  <td>ich:</td>
                  <td><input type="text" size="30"></td>
                  </tr>
                  <tr>
                  <td colspan=2><center><input type="button" value="Ausgabe" onClick="Ausgabe(this.form.User.value)"></center></td>
                  </tr>
                  </form>

                  </body></html>

                  Habe ich etwas mit dem if falsch gemacht?

                  Danke H²O

                  1. Hallo.

                    ...
                     var Ausdruck = /(Hallo)\s(\w.+)/;
                        if  Ausdruck.exec(Wert); {
                       }           ...

                    Es heißt natürlich: if  (Ausdruck.exec(Wert));
                    (wie kleine Fehler doch manchmal große Auswirkungen haben)
                    Sorry es mussten natürlich noch Klammern um das if.

                    Naja, aber wie mache ich es, das, wenn vor "Hallo" noch etwas steht, das ausgelassen werden soll?

                    H²O

                    1. Hi.

                      Ich habe noch eine kurze Frage: Wie soll ich hier index of mitreinbringen? Ohne regexp ist das keine problem, aber wie soll ich das damit anstellen?

                      Hier ist das Script wenn man kein regexp verwendet:

                      <html>
                      <head>
                      <meta name="author" content="">
                      <title>Beispiel - Textfeld überprüfen</title>

                      <!--das Script hier ermöglicht es, dass es egal ist ob jemand groß oder klein schreibt.-->

                      <script type="text/javascript">
                      <!--
                      function MachKlein() {
                       var neu = document.Test.Eingabe.value.toLowerCase();
                       document.Test.Eingabe.value = neu;
                      }
                      //-->
                      </script>

                      </head>
                      <body bgcolor="#0000FF" text="#FFFFFF" onLoad="this.document.Test.Eingabe.focus();">
                      <center>
                      <br>

                      <script type="text/javascript">
                      function test() {

                      //Wörter, die irgendwo vorkommen müssen

                      var wert = document.forms[0].elements[0].value;
                      if (wert.indexOf("hi")>-1){
                                  document.forms[0].elements[0].value = "";
                                  document.forms[0].elements[1].value = "Hi.";
                                  document.forms[0].elements[0].focus();
                                  return false;
                      }

                      }
                      </script>

                      <table>
                      <form method="POST" action="" name="Test" onSubmit="return test()">
                      <tr>
                      <td>du:</td>
                      <td><input type="text" size="30" name="Eingabe"></td>
                      </tr>
                      <tr>
                      <td>ich:</td>
                      <td><input type="text" size="30"></td>
                      </tr>
                      <tr>
                      <td colspan=2><center><input type="submit" value="abschicken" onClick="MachKlein()"></center></td>
                      </tr>
                      </form>
                      </table>
                      <br>
                      </center>

                      </body>
                      </html>

                      Ok, H²O

                      P.S.: Ich bin jetzt gleich mal für 2 Stunden weg. Um 20:00 kannst du wieder mit mir rechen.