Eingabe prüfen bei dynamischer checkbox
Bernhard
- javascript
0 Siechfred0 Gernot Back
Hallo
Ich arbeite mit dynamischen checkboxen, die Werte aus einer datenbank auslesen.
Nun möchte ich prüfen, dass mindestens eine checkbox aktiviert wurde.
Ich habe es mit folgendem Javascript innerhalb einer check-funktion versucht, aber ohne Erfolg:
if(form1.zeitraum[].checked != true) {
alert ("Bitte Zeitraum eingeben!")
form1.zeitraum[].focus();
return (false);
}
Kann mir da jemand weiterhelfen?
Danke
Bernhard
Hallo Bernhard.
if(form1.zeitraum[].checked != true) {
Das mit den eckigen Klammern ist definitiv zum Scheitern verurteilt, hier kollidieren Javascript und PHP. Sprich die Elemente besser über ihren Index an, also document.form1.elements[Indexnummer]. Den Typ des Elementes verrät dir die Eigenschaft type. Hat das Element den richtigen Typ, fragst du die Eigenschaft checked ab. Hilfsweise kannst du mit Hilfe der Eigenschaft name die passenden Checkboxen rausfinden. Dabei helfen dir die Stringfunktionen.
Freundschaft!
Siechfred
Hallo Bernhard,
meinst du so etwas?
<html>
<head>
<title>checkcheck</title>
<script type="text/javascript" language="JavaScript">
<!--
function checkcheck () {
for (i=0; i<document.form1.elements.length ; i++ ) {
if(document.form1.elements[i].checked) {
return false;
}
}
return true;
}
function melden () {
if(checkcheck()) {
alert("Bitte Zeitraum eingeben!");
}
}
//-->
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form name="form1" onSubmit="melden()" action="" method="" target="">
<input type="Checkbox" name="Zeitraum1" value="v">
<input type="Checkbox" name="Zeitraum2" value="v">
<input type="Checkbox" name="Zeitraum3" value="v">
<input type="Checkbox" name="Zeitraum4" value="v">
<input type="submit" name="" value="pruefen">
</form>
</body>
</html>
Gruß Gernot
Hallo Gernot,
Danke! Deine Antwort ist plausibel funktioniert aber bei mir leider nicht.
Kann das eventuell daran liegen, dass ich die checkbox über eine php schleife einlesen lasse?
Das sieht bei mir so aus:
<?php do { ?>
<?php echo "<input type='checkbox' name='zeitraum[]' value='".$row_Recordset1['zeit']."'> <br>"; ?>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
Bernhard
Hallo Bernhard.
Kann das eventuell daran liegen, dass ich die checkbox über eine php schleife einlesen lasse?
Nein. Es liegt an den eckigen Klammern, Javascript bekommt nichts von PHP mit.
Freundschaft!
Siechfred