Formular Validierung die 1000ste

ropueh

Mitglied
Hallo,

ich steh mit JavaScript noch ganz am Anfang und suche einen Fehler:

Code:
<script type="text/javascript">
function chkanmeldung()
{ if(document.produkt.code.value.length != 13)  {
   document.getElementById("code").innerHTML = "13 Ziffern sollten's sein";
   document.produkt.code.focus();  }
   return false;  }
</script>

<script language="JavaScript">
<!--
    function unsetErrors() {
        document.getElementById("code").innerHTML = "sinds";
    }
//-->
</script>

<form name="produkt" method="post" action="produkt_eintragen.php" onSubmit="return chkanmeldung();">
<table><tr><td>code</td><td colspan="2">
<input name="code" size="13" onkeyup="unsetErrors(); return chkanmeldung();"/>
<div id="code" style="color: red;"></div>
</td></tr>
<tr><td>name</td><td colspan="2"><input name="name" size="20" /></td></tr>
<tr><td>firma</td><td colspan="2"><input name="firma" size="20"/></td></tr>
<tr><td>inhalt</td><td colspan="2"><input name="inhalt" size="3" /><select name="einheit"><option>g</option><option>l</option><option>kg</option><option>ml</option></select></td></tr>
<tr><td>preis</td><td colspan="2"><input name="preis" size="4" value="00,00" />€</td></tr>
<tr><td>kategorie</td><td colspan="2"><input name="kategorie" size="20" /></td></tr>
<tr><td>zutaten</td><td colspan="2"><input name="zutaten" size="20" /></td></tr>
<tr><td>laden</td><td>
REWE</td><td><input type="checkbox" name="laden[]" value="REWE" /></td></tr>
<tr><td></td><td>Kaufland</td><td><input type="checkbox" name="laden[]" value="Kaufland" /></td></tr>
<tr><td></td><td>Lidl</td><td><input type="checkbox" name="laden[]" value="Lidl" /></td></tr>
<tr><td></td><td>Aldi</td><td><input type="checkbox" name="laden[]" value="Aldi" /></td></tr>
<tr><td></td><td>Netto</td><td><input type="checkbox" name="laden[]" value="Netto" /></td></tr>
<tr><td></td><td>Plus</td><td><input type="checkbox" name="laden[]" value="Plus" /></td></tr>
<tr><td></td><td>Sky</td><td><input type="checkbox" name="laden[]" value="Sky" /></td></tr>
<tr><td></td><td>real</td><td><input type="checkbox" name="laden[]" value="real" />
</td></tr>
<tr><td>kommentar</td><td><input name="kommentar" size="20"/></td></tr>
<tr><td colspan="3"><input type="submit" value="senden"/></td></tr>
</table>
</form>

Der onthefly-Check des Code-Inputs klappt, aber ich kann das ganze nicht abschicken. Weiß jemand, warum nicht?

Danke schonmal
 
Zuletzt bearbeitet:
Moin,

die Funktion chkanmeldung() gibt immer false zurück.

Sie müsste false zurückgeben, wenn die Bedingung nicht erfüllt ist, ansonsten true .
 
Hey,

Code:
<script type="text/javascript">
function chkanmeldung()
{ if(document.produkt.code.value.length != 13)  {
   document.getElementById("code").innerHTML = "13 Ziffern sollten's sein";
   document.produkt.code.focus(); 
  return false
 }
   else { return true;  }
</script>

so?

edit: da kommt bei mir die unseterrors zum wirken, egal was ich eingebe.
 
Zuletzt bearbeitet:
So:
Code:
function chkanmeldung()
{ 
  if(document.produkt.code.value.length != 13)  
  {
    document.getElementById("code").innerHTML = "13 Zeichen sollten's sein";
    document.produkt.code.focus();  
    return false; 
  }
    return true;
}
 
dankeschön
Jetzt geht's mit dem Senden, aber nicht mehr onkeypress am Input selbst :/ das war's letztlich was ich haben wollte, damit gleich beim tippen validiert wird.
Ist da irgendwas vom Grunde her falsch?
 
Zuletzt bearbeitet:
Du hast das im eingangs geposteten Code mit onkeyup gemacht, so wäre es auch richtig(onkeypress feuert vor onkeyup, und das ist zu früh)

Du probierst das im IE, nehme ich an.
Der hat da ein anderes Problem:
Du hast da einmal das <input> mit dem name code , und das <div> mit der id code
Ändere eines der Attribute(der IE findet nicht das richtige Element, was einen Fehler erzeugt)
 
Zurück