• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular automatisch absenden wenn ein Feld bestimmt viele Zeichen enthält

jonas961

Mitglied
Hallo,
Ich weiß nicht genau ob das das richtige Forum ist (wenn nicht bitte verschieben)
Ich habe auf der Website die ich gerade entwickle ein Fomular
Das Formulat besteht lediglich aus einem Textfeld wo eine Kundennummer eingetragen wird um Daten abzufragen
Nun möchte ich das ganze so einrichten, dass das Formular automatisch abgeschickt wird (weiterverarbeitung mit PHP) sobald in diesem textfeld 8 Ziffern stehen
Also eig ohne submit button

Kenn mich leider mit JavaScript gar nicht aus
Ich hoffe es kann mir jemand helfen
Danke!
 
Eindeutig ein JavaScript-Thema zu dem Du schon die passenden Antworten bekommen hast. Habe dein Topic noch in den richtigen Bereich verschoben.
 
Ich habe mal versucht das in Javascript umzusetzen. Habe bislang immer Abstand zu Javascript gehalten, jetzt weiss ich warum.
Ich kann nicht mal das einfachste Beispiel umsetzen. Mit den Links von Achtelpetit ist das so jedenfalls nicht zu lösen.

Im Internet habe ich viele Hinweise mit dem Aufruf innerhalb einer Funktion in dieser Art gesehen:
this.form.submit();
return false;


Ich habe das jetzt also mal so versucht:
HTML:
<!DOCTYPE HTML>
<html>              
    <head>                              
        <meta charset=UTF-8>                              
        <title>Beispielformular mit Autosubmit</title>                              
        <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">                 
        <script>   
        function Check() {
          if (document.getElementById("nummerncode").value >2) {
          this.form.submit();
          alert("3 Zeichen erreicht");
          return false;
          }
        }
        </script>                     
    </head>                
    <body>                               
        <h3>Testformular</h3>                              
        <form action="test_02.php" method="post" enctype="multipart/form-data" >                                                     
            <label for="nummerncode">Nummer eingeben: 
            </label>                                                                      
            <input type="Number" id="nummerncode" name="nummerncode" OnKeyUp="Check(this)" maxlength="8">
            <input  type="submit" value="Abschicken">                                                                                               
        </form>                                   
    </body>
</html>

Nimmt man die Zeile mit this.form.submit(); heraus zeigt die Alert-Meldung nach der richtigen Anzahl der Ziffern den Erfolg an.
Wie muss man das schreiben damit ein Submit abgefeuert wird?
 
"this" verweist immer auf ein Objekt. Die Seite von der Du diesen Code-Teil hast, hast Du sicherlich nicht ganz gelesen. Es geht primär um submit(), welches ein Formular-Objekt aufrufen muss.

Du müsstest dem <form>-Element im HTML-Code eine ID geben und dann mit

Code:
document.getElementById("hierDieId").submit();

den Versand des Formulars aufrufen.
 
Hallo,
Bei mir funktioniert es leider nicht
Ich verwende folgenden Code:
Code:
<script>           
function Check() {          
if (document.getElementById("kdr").value >7) {          
document.getElementById("abfrage").submit();          
alert("8 Zeichen erreicht");          
return false;          
}        
}        
</script>
HTML:
<form action="user_abfrage.php" method="post" id="abfrage" name="abfrage" enctype="multipart/form-data">
<label for="kdr">Kundenummer:</label>
<input type="text" name="kdr" id="kdr" onkeyup="Check(this)" maxlength="8" />
<input type="submit" value="Abfrage starten" name="submit" id="submit" />
</form>

Was mache ich falsch?
 
Hallo,

Wenn du dem Submit Button die Id Submit gibst, überschreibt du dein Submit. Die reservierten Namen sollte man nicht als ID verwenden. Dein Submit-Button hat die ID und den Namen Submit, das musst du umbenennen. Der braucht auch keine Id, weil im CSS kannst du in ja über das Formular ansprechen.

Besser:
HTML:
<form action="user_abfrage.php" method="post" id="abfrage" name="abfrage" enctype="multipart/form-data"> <label for="kdr">Kundenummer:</label> <input type="text" name="kdr" id="kdr" onkeyup="Check(this)" maxlength="8" /> <input type="submit" value="Abfrage starten" /> </form>

Wenn du nur Zahlen im Feld erlauben willst, dann kann der input Type vom Eingabefeld auch number heissen. Vorteil ist, das bei modernen Browsern in Verbindung mit HTML5 dann auch nur Zahlen zugelassen werden. Du kannst dem Feld zudem das Attribut required mitgeben, dann muss das Feld ausfgefüllt sein, und keiner kann vorher das Formular über den Button absenden. Siehe HTML5 input Tag

Noch besser:
HTML:
<form action="user_abfrage.php" method="post" id="abfrage" name="abfrage" enctype="multipart/form-data"> <label for="kdr">Kundenummer:</label> <input type="number" name="kdr" id="kdr" onkeyup="Check(this)" maxlength="8" required /> <input type="submit" value="Abfrage starten" /> </form>
 
Sicher, dass es geht? Denn dieser Code hier

Code:
if (document.getElementById("kdr").value >7) {

prüft lediglich, ob in dem Eingabefeld eine Zahl größer 7 steht - nicht die Länge des Strings. Wenn Du die Länge willst, musst Du

Code:
if (document.getElementById("kdr").value.length >7) {

schreiben.
 
Zurück
Oben