robert stumpe: viele form-elemente(radio-buttons) über schleifen abchecken...

...hab ich mir eigentlich einfacher vorgestellt

servus leute, habe nen fragebogen fürs intranet mit vielen radio-buttons die alle gecheckt(if checked) werden sollen.

also hier was ich habe:

function checkData()
{

var rr = "document.block1.b";
var tt = "document.block2.q";
var r = "";
var t = "";

for (x=1; x<15; x++) // 15 weil es sind 14 fragen zu beantworten
{
 r = rr.concat(x);
 t = tt.concat(x);

var ok1=false;
 var ok2=false;

for(i =0;i<r.length;i++)
 {
  if(r[i].checked)
  ok1=true
 }
 if(!ok1)
 {
  alert("Bitte alles ausfüllen");
  return false
 }

for(i =0;i<t.length;i++)
 {
  if(t[i].checked)
  ok2=true
 }
 if(!ok2)
 {
  alert("Bitte alles ausfüllen");
  return false
 }
}

return true
}

habe auch schon mit verkettungsanweisung (+) probiert .. er erkennt die var aber nie als form-objekt

sorry wenn das thema js+formvalidation langsam nervt ... aber irgendwie ist mir das unklar

mir faellt grad auf ... wieso regt er sich nicht schon auf wenn ich r.length abfrage?

  1. Hi,

    habe auch schon mit verkettungsanweisung (+) probiert .. er erkennt die var aber nie als form-objekt

    das liegt daran, dass es keines ist, sondern ein stinknormaler String. Arbeite mit reellen Referenzen auf die Dokument-Objekte, anstatt mit Stringverknüpfungen.

    mir faellt grad auf ... wieso regt er sich nicht schon auf wenn ich r.length abfrage?

    Weil auch Strings eine Länge haben.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. thx @ cheatah

      deine antworten sind immer super!!!

      man muss selber noch bissl mitdenken und dann gehts

      so z.b.

      <script>
      function checkData()
      {

      var r = "";
      var t = "";
      var rr = 'b';
      var tt = 'q';
      var rrr = "";
      var ttt = "";

      for (x=1; x<15; x++)
      {
       rrr = rr.concat(x);
       ttt = tt.concat(x);

      r = document.block1.elements[rrr];
       t = document.block1.elements[ttt];

      var ok1=false;
       var ok2=false;

      for(i =0;i<r.length;i++)
       {
        if(r[i].checked)
        ok1=true
       }
       if(!ok1)
       {
        alert("Bitte alles ausfüllen");
        return false
       }

      for(i =0;i<t.length;i++)
       {
        if(t[i].checked)
        ok2=true
       }
       if(!ok2)
       {
        alert("Bitte alles ausfüllen");
        return false
       }
      }

      return true
      }
      </script>

      super danke!!!!!!!!!!!!