Probleme mit Formularabfragen

Kalito

Erfahrenes Mitglied
Hallo folgendes Formular:
HTML:
<html>
    <head>
        <title>Schulungen</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script language="javascript" type="text/javascript">
            function textCounter(field, countfield, maxlimit) {
            /*
            * Die Input-Parameter sind: der Feld-Name;
            * das Feld mit der Zahl der verbleibenden Stellen;
            * die max. Stellenanzahl.
            */
                if(field.value.length == 0){
                    alert("Bitte eine Beschreibung angeben");
                }
                if (field.value.length > maxlimit) // wenn die eingegebene Länge größer als erlaubt ist
                    field.value =field.value.substring(0, maxlimit); // es wird keine weitere Eingabe mehr zugelassen
                else
                countfield.value = maxlimit - field.value.length;} // die verbleibende Anzahl von Zeichen wird angezeigt
            function pruefen(){
            //Prüfung ob Feld gefüllt ist
                if(document.schulung.name.value==""){
                    alert("Bitte Schulungsnamen angeben!");
                    document.schulung.name.focus();
                    return false;
                }
                if(document.schulung.beschreibung.value==""){
                    alert("Bitte eine Beschreibung angeben!");
                    document.schulung.beschreibung.focus();
                    return false;
                }
                if(document.schulung.jahr.value=="JJJJ" || document.anmelden.jahr.value.length<4){
                    alert("Die Jahresangabe war nicht korrekt");
                    document.schulung.jahr.focus();
                    return false;
                }
             }
        </script>
    </head>
    <body>
      <table border="0" cellpadding="0" cellspacing="0">
        <form method="post" name="schulung" onsubmit="return pruefen();">
            <tr>
              <td rowspan="7" class="table" valign="top"><?php menue($RID); ?></td>
              <td colspan="2" class="head"><h1>Schulung anlegen</h1></td>
            </tr>
            <tr>
                <td valign="top">
                    <table border="0" cellpadding="0" cellspacing="10">
                        <tr>
                            <td>Art*</td>
                            <td><input type="radio" name="art" value="intern"/> Intern <br /> <input  type="radio" name="art" value="extern"/> Extern<br /> <input type="radio" name="art" value="jcn"/> JCN
                             Slot <select name="slot">
                                <option>1</option>
                                <option>2</option>
                                <option>3</option>
                                <option>4</option>
                            </select>
                            </td>
                        </tr>
                        <tr>
                            <td>Name*</td>
                            <td><input type="text" name="name"/></td>
                        </tr>
                        <tr>
                            <td>Wann*</td>
                            <td>
                                                Tag
                                                <select name="tag">
                                                    <?php
                                                        for($i=01; $i<32; $i++){
                                                            echo '<option>'.$i.'</option>';
                                                        }
                                                     ?>
                                                </select>
                                                Monat
                                                <select name="monat">
                                                    <?php
                                                        for($j=1; $j<13; $j++){
                                                            echo '<option>'.$j.'</option>';
                                                        }
                                                     ?>
                                                </select>
                                                Jahr <input type="text" name="jahr" maxlength="4" size="1" value="JJJJ" onfocus="if(this.value=='JJJJ') this.value=''" onblur="if(this.value=='')this.value='JJJJ'"/>
                                            </td>
                        </tr>
                        <tr>
                            <td>Schulungsleiter*</td>
                            <td><input type="text" name="leiter"/></td>
                        </tr>
                        <tr>
                            <td>Beschreibung*</td>
                            <td><textarea name="beschreibung" cols="30" rows="10" rows="4" wrap="PHYSICAL" id="message"
                                        onkeydown="textCounter(this.form.message, this.form.remLen,500);"
                                        onkeyup="textCounter(this.form.message, this.form.remLen,500); ">
                                </textarea> <br />
                                    <input name="remLen" type="text" id="remLen" value="500" size="3" maxlength="3" readonly />
                                    verbleibende Zeichen.
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" align="right"><input type="submit" name="submit" value="Schulung anlegen" class="button"/></td>
                        </tr>
                    </table>
                </td>
                <td>
                    <table cellpadding="0" cellspacing="10" border="0">
                        <tr><td><u>Teilnehmer</u></td></tr>
                        <?php
                            $k=0;
                            while($m=mysql_fetch_array($mitglieder)){
                                echo '<tr><td><input type="hidden" name="mid[]" value="'.$m['MID'].'"/><input type="checkbox" name="teilnehmer[]" value="'.$m['MID'].'" /> '.$m['MID'].'</td></tr>';
                                $k++;
                            }

                         ?>
                    </table>
                </td>
            </tr>
        </form>
        </table>
    </body>
</html>

Mein Problem nun ist das ich keine Fehlermeldung bekomme, wenn ich das Feld beschreibung leer lasse.

Zweitens komme ich nicht so dahinter, wie ich prüfen kann, ob mindestens eine checkbox aktiviert ist.

Meine Überlegung war

HTML:
<script>
function pruefen(){
     var x=document.getElementsByName("teilnehmer[]");
     for(y=0; y<x; y++){
            if(document.schulung.teilnehmer.value==checked) break;
            else alert("Bitte Teilnhemer auswählen");
     }
} 
</script>

Hab den Code noch nicht testen können, aber wollte fragen ob der so ok ist oder nicht?
 
Hi,

die Prüfung der textarea funktioniert nicht, da sie immer ein Zeichen enthält (neue Zeile). Um das zu verhindern, muss der schliessende Tag ohne Zeilenumbruch immer direkt nach dem öffnenden folgen.
Code:
<textarea ... ></textarea>
Das Testen, ob mindestens eine Checkbox aktiviert ist, wird so nicht funktionieren. Du musst in der for-Schleife eine Länge festlegen, nach der die Durchläufe abgebrochen werden. Zudem musst du anhand einer Variable nach dem Schleifendurchlauf prüfen, ob eine aktivierte Box gefunden wurde.

Beispiel:
Code:
// Prüfen, ob mind. eine Checkbox aktiviert ist
var arrCB = document.schulung.elements['teilnehmer[]'];
var blnCheck = false;
for(var i=0; i<arrCB.length; i++){
  if(arrCB[i].checked){
    blnCheck = true;  // Markieren, dass eine Box aktiviert ist
    break;            // Schleife verlassen
  }
}
if(!blnCheck){
  alert("Es muss mindestens eine Checkbox ausgewähl werden!");
  return false;
}
Ciao
Quaese
 
Zurück