itebob: Formulareingaben auf Vollständigkeit prüfen

Beitrag lesen

Hallo,

in der Datei plausiCheck.js ist dieses Skript abgelegt

function PlausiCheckOptionsliste(){
var ergebnisPlausiprüfung = "";

/* Schleife für die text-Parameter Anfang */

/* Schleife für die text-Parameter Ende */
 for (var i=0;i < zuCheckenderParameterText.length;i++){
  Optionsliste = document.getElementsByName(zuCheckenderParameterText[i]);
 OptionslisteLaenge = Optionsliste.length ;
  var auswahlGetroffen = false;
     for (var j = 1; j < OptionslisteLaenge; j++){
      if (Optionsliste [j].value!=""){
     auswahlGetroffen = true;
    }
   }
   if(!auswahlGetroffen) {
    ergebnisPlausiprüfung+= document.getElementsByName(zuCheckenderParameterText[i])[0].innerText + "\n";
   Optionsliste [0].style.color = "red";
   }
 }

/* Schleife für die checked-Parameter Anfang */
 for (var i=0;i < zuCheckenderParameter.length;i++){
  Optionsliste = document.getElementsByName(zuCheckenderParameter[i]);
 OptionslisteLaenge = Optionsliste.length ;
  var auswahlGetroffen = false;
     for (var j = 1; j < OptionslisteLaenge; j++){
      if (Optionsliste [j].checked){
     auswahlGetroffen = true;
    }
   }
   if(!auswahlGetroffen) {
    ergebnisPlausiprüfung+= document.getElementsByName(zuCheckenderParameter[i])[0].innerText + "\n";
   Optionsliste [0].style.color = "red";
   }
 }
/* Schleife für die checked-Parameter Ende */

/* Ausgabe der Liste von Datenfeldern, wo die Eingabewerte fehlen*/
 if (ergebnisPlausiprüfung !="")
  {alert ( "Bitte Angaben vervollständigen: \n\n" + ergebnisPlausiprüfung )}
}

Dieses Skript wird in einer HTML-Seite eingebunden:

<html><head><title>Test</title>
<script type="text/javascript" src="plausiCheck.js"></script>
</head>
<body>
<form action="" onSubmit="PlausiCheckOptionsliste()">
<h1 id="themaID">Text-Eingaben</h1>
<p>
<input type="text" name="themaID" /> thema_ID<br />

</p>
<h1 id="tabellenOrGrafikLinks" >tabellenOrGrafikLinks</h1>
<input name="tabellenOrGrafikLinks" type="radio" value="tabelle"/> tabellenOrGrafikLinks<br />
<input name="tabellenOrGrafikLinks" type="radio" value="grafik" /> tabellenOrGrafikLinks<br />
<h1 id="seitentyp" >Seitentyp</h1>
<input name="seitentyp" type="radio" value="seitentyp0"/> seitentyp0<br />
<input name="seitentyp" type="radio" value="seitentyp1" /> seitentyp1<br />
<input name="seitentyp" type="radio" value="seitentyp2" /> seitentyp2<br />

<button type="submit" style="font-size: 9pt">Eingabe prüfen</button>
</form>
<hr/>
<script type="text/javascript">

/* hier müssen die zu checkende Parameter vor der Einbindung der  PlausiCheckOptionsliste()-Methode erst einzeln in einer richtigen Reihenfolge festgelegt werden */
 var zuCheckenderParameter = new Array();

zuCheckenderParameter[0]  = "tabellenOrGrafikLinks";
 zuCheckenderParameter[1] =  "seitentyp";

/* Parameter vom Typ Text festlegen */
 var zuCheckenderParameterText = new Array();
zuCheckenderParameterText[0]  = "themaID";
// -->
</script>

</body></html>

Beim Drücken des Buttons 'Eingabe prüfen' wird die Funktion PlausiCheckOptionsliste() ausgeführt, die prüft, ob die entsprechende Felder angeklickt bzw. gefüllt wurden. Alles funktioniert wunderbar, aber ich bilde mir ein, dass es eine Lösung geben muß, wo beide Überprüfungen:
if (Optionsliste [j].value!="")
und
if (Optionsliste [j].checked)

in einer
 for (var i=0;i < zuCheckenderParameter.length;i++)
Schleife durchgeführt werden können. Habe versucht die beide Bedingungen in _einer_ Schleife so
...
     for (var j = 1; j < OptionslisteLaenge; j++){
     if (Optionsliste [j].value!="" || Optionsliste [j].checked){
  auswahlGetroffen = true;
 }
...
oder so
...
  if (Optionsliste [j].checked ){
  auswahlGetroffen = true;
    }
     if ( Optionsliste [j].value!=""){
 auswahlGetroffen = true;
    }
...
zu verknüpfen, aber unverständlicherweise wird bei dieser Variante nur das Feld  'Text-Eingaben' ( id="themaID") geprüft. Vielleicht hat jemand Lust und Zeit, sich meine Lösung unter die Lupe zu nehmen und sich Gedanken zu machen, wie man die Überprüfung in einer Schleife umsetzen kann?

gruss

Gustav