Dimitri: Formular prüfen Button IMAGE

Hi,
ich hab das Problem das ich 3 Text Felder prüfen muss bevor ich sie absende.
Das Problem besteht darin, dass das absenden über eine input type="image" erfolgt.
Mein Versuch:
<input name=\"save\" id=\"save\" onclick=\"vollstaendig();\" value=\"save\" type=\"image\" src=\"$dbserverhost/images/buttons$language/b_neue_spu_speichern.gif\" alt=\"speichern\">

      <script language=JavaScript>  
   function vollstaendig()  
   {  
     voll=true;  
  
     if(window.document.datenblatt.spubez.value== \"\"){  
     voll=false;}  
  
  
     if(!voll) alert(\"Bitte alle Felder ausfüllen!\");  
     return voll;  
   }  
</script>

Der alert geht auf, doch beim Klicken auf "OK" wird das Formular trotzdem abgesendet. Kann man das auch ohne Submitbutton regeln?

2ter Versuch war dann die Buttons zu deaktivieren, und erst nach der Eingabe in die Felder zu aktivieren. Das funktioniert zwar, aber ich hab dann das Problem, dass keiner weis das die Buttons deaktiviert sind und vor allem nicht warum dies so ist. Das würde heißen das ich einen Altert auf dem image bräuchte der auf onclick sagt "ne hier da ist was net ausgefüllt" doch das klappt nicht da der button ja deaktiviert ist.

Hat wer ne idee?
Danke

  1. Hat wer ne idee?

    Validiere auf dem Server.
    Gib klare Richtlinien bekannt, was die erwartete Eingabe sei, statt mit JS Pseudovalidierung rumzumeckern.

    Die Richtlinie kann ein CSS Drive-In (statt Popup) sein, das dann in den Fokus kommt, wenn das Feld den Fokus hat. Bitte nicht display:none verwenden, sondern mit position:relative und left:-99em arbeiten.

    Gewöhne dir an, dass language kein relevantes JS Attribut ist, aber type in <script> ein notwendiges Attribut ist.
    Initialisiere Variabeln mit var, statt den globalen Raum zu verschandeln.

    Vermeide im übrigen jeden Programmierstil, der dir "Kopfschmerzen" unnötig bereitet. (sprich: lagere Scripte in eigene Files aus)

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
  2. Hat wer ne idee?

    Allerdings!
    Vorab: JS-Validierung kann man ohne tiefe JS-Kentnisse umgehen, also AUCH Serverseitig Validieren.

    Dein Body-Tag bekommt ne Anweisung: <body onsubmit="validateForm(this);">
    Beim Submit, wird diese Funktion aufgerufen, in der kannst du auf Inhalt der Felder prüfen. Wenn die Funktion ein "true" wiedergibt, wird das Formular verschickt, bei "false" nicht!

    Ganz einfach, in 10 min. fertig!

  3. Hi,

    Das Problem besteht darin, dass das absenden über eine input type="image" erfolgt.

    Nein, tut es nicht.
    Mit einem normalen Submit-Button wuerde es sich genauso verhalten.

    Mein Versuch:
    <input name=\"save\" id=\"save\" onclick=\"vollstaendig();\" value=\"save\" type=\"image\" src=\"$dbserverhost/images/buttons$language/b_neue_spu_speichern.gif\" alt=\"speichern\">

    Zunaechst mal: Poste bitte keinen serverseitigen Code, wenn du ein clientseitiges Problem diskutieren willst!

    Und dann: Deine Funktion vollstaendig gibt zwar true oder false zurueck - allerdings laesst du diesen Wert an der aufrufenden Stelle "versanden".
    Wenn du Eventhandler ueber Attribute im HTML an Elemente bindest, dann muss dort auch noch mal ein return stehen, wenn du damit die weitere Abarbeitung dieses Events beeinflussen willst:
    onclick="return vollstaendig();"

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“