Abfragen ob ein Array leer ist
Werner
- javascript
Hallo,
ich habe folgenden HTML Code:
<INPUT type="checkbox" "name="test[]">
Wie kann ich mit Javascript abfragen ob test[] leer ist?
Werner
Hallo,
ich habe folgenden HTML Code:
<INPUT type="checkbox" "name="test[]">
Wie kann ich mit Javascript abfragen ob test[] leer ist?
test[] ist Client-seitig kein Array, sondern nur der Bezeichner fuer dieses INPUT-Feld bzw. weitere.
In JavaScript kann man auf alle Felder mit diesem "Sammelnamen" so zugreifen (bezogen auf das erste Formular):
document.forms[0].elements["test[]"][index ab 0].eigenschaft
oder
document.forms["formularname"].elements["test[]"][index ab 0].eigenschaft
Erst im (vermutlich bei action angegebenen) PHP-Script wird das Array $test[] erhalten und mittels count($test) kann die Anzahl der Arrayelemente bestimmt werden.
BTW: Vor name ist ein " zuviel.
MfG, Thomas
Nachtrag:
Wenn es darum gehen sollte, heraus zu finden, wieviele Checkboxen aktiviert sind, dann probiere es so:
<form action="">
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="button" value="Test" onclick="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}alert('Aktivierte Checkboxen: '+j)">
</form>
MfG, Thomas
Hallo Thomas,
vielen Dank. Ich blicke aber noch nicht ganz durch. Vielleicht kannst Du dir das ja mal ansehen:
<TR>
<TD class="detail">
<?php
foreach ($aTest["company"] as $key => $value) {
if ($aTest["company"][$key]["isDefault"] == true) {
$sDefault = " " . "checked";
}
else {
$sDefault = "";
}
print("<INPUT type="checkbox"" . " " .
"name="" . "company[]" . """ . " " .
"value="" .
$aTest["company"][$key]["value"] .
""" . $sDefault . ">" .
$aTest["company"][$key]["desc"]
);
print("<BR>\n");
}
?>
</TD>
</TR>
$aTest ist ein Array in PHP definiert. Ich lese daraus mit foreach die Werte aus
und gebe diese Werte in HTML Checkboxen aus. Ich möchte nun aber eine Abfrage ein-
bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
die nächste Seite aufgerufen wird.
d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
Das muß ich doch mit Javascript machen, oder?
Werner
Hallo,
ich habe folgenden HTML Code:
<INPUT type="checkbox" "name="test[]">
Wie kann ich mit Javascript abfragen ob test[] leer ist?
test[] ist Client-seitig kein Array, sondern nur der Bezeichner fuer dieses INPUT-Feld bzw. weitere.
In JavaScript kann man auf alle Felder mit diesem "Sammelnamen" so zugreifen (bezogen auf das erste Formular):
document.forms[0].elements["test[]"][index ab 0].eigenschaft
oder
document.forms["formularname"].elements["test[]"][index ab 0].eigenschaft
Erst im (vermutlich bei action angegebenen) PHP-Script wird das Array $test[] erhalten und mittels count($test) kann die Anzahl der Arrayelemente bestimmt werden.
BTW: Vor name ist ein " zuviel.
MfG, Thomas
Hallo,
» Ich möchte nun aber eine Abfrage ein-
bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
die nächste Seite aufgerufen wird.
d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
Das muß ich doch mit Javascript machen, oder?
Ja, siehe meinen Nachtrag zur ersten Antwort. Setze das im Formular onsubmit ein und gib false zurueck, wenn keine Checkbox aktiv ist, also bei j=0:
<form action="..." onsubmit="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}if(j==0){return false;} else {return true;}">
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="submit">
</form>
MfG, Thomas
Super,
das klappt,
vielen Dank Thomas.
Werner
PS! Das ist ein prima Forum hier, man bekommt sofort Antworten zu einem Problem.
Hallo,
» Ich möchte nun aber eine Abfrage ein-
bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
die nächste Seite aufgerufen wird.
d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
Das muß ich doch mit Javascript machen, oder?
Ja, siehe meinen Nachtrag zur ersten Antwort. Setze das im Formular onsubmit ein und gib false zurueck, wenn keine Checkbox aktiv ist, also bei j=0:
<form action="..." onsubmit="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}if(j==0){return false;} else {return true;}">
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="submit">
</form>
MfG, Thomas
Hallo,
Hi Werner,
ich habe folgenden HTML Code:
<INPUT type="checkbox" "name="test[]">
Wie kann ich mit Javascript abfragen ob test[] leer ist?
if (test.length == 0) ...
so ganz ist mir aber nicht klar, was Du mit Deiner Checkbox vorhast (unabhängig von der Anzahl der "Gänsefüßchen"). Schau´ mal in SELFHTML nach was passiert, wenn die die Checkbox nicht checked ist.
Werner
Gruß
Hans-Peter