Der Rest des Eingabefeldes soll wiedergegeben werden.
H²O
- javascript
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>
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
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
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
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
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
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
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
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
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
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
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
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.