viele form-elemente(radio-buttons) über schleifen abchecken...
robert stumpe
- javascript
0 Cheatah
...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?
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
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!!!!!!!!!!!!