Alle Checkboxen per Button aktivieren --> Zugriff auf Checkboxen?
Erri
- javascript
0 Nachtrag
Erri0 Uli0 Struppi
Hallo,
ich habe ein Problem mit Javascript, welches sicherlich auch daran liegt, dass ich noch nicht bestens mit dieser Sprache vertraut bin.
Ich hoffe aber trotzdem, dass ihr mir weiterhelfen könnt.
Ich habe ein Formular, in welchem sich Checkboxen mit dem selben Namen befinden.
Nun möchte ich, dass durch OnClick alle Checkboxen aktiviert werden.
Folgendermaßen habe ich es probiert:
Auszug:
<form name="upload_photos" id="upload" enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="88">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="89">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="90">
<input type="button" onClick="this.value=cbDeActivate(this.upload_fotos.array_foto[]);" value="alle Aktivieren">
</form>
Dazu noch das Script im Head-Bereich:
<script language="JavaScript">
<!--
var Marker = "false";
function cbDeActivate(field)
{
if(Marker=="false")
{
for(i=0; i<field.length; i++)
{
field[i].checked = true;
}
Marker = "true";
return "alle Dektivieren";
}
else
{
for(i=0; i<field.length; i++)
{
field[i].checked = false;
}
Marker = "false";
return "alle Aktivieren";
}
}
//-->
</script>
Muss ich diese über die ID oder den Namen ansprechen?
Ich habe bereits beides proboert, aber bisher keinen Erfolg gehabt, d.h. die Checkboxen werden nicht aktiviert...
Was mache ich falsch?
Vielen Dank
Erri
Noch einen wichtigen Nachtrag:
<input type="button" onClick="this.value=cbDeActivate(this.upload_fotos.array_foto[]);" value="alle Aktivieren">
steht natürlich so da:
<input type="button" onClick="this.value=cbDeActivate(this.upload_photos.array_foto[]);" value="alle Aktivieren">
Danke
Erri
Hi,
probiers mal so
Auszug:
<form name="upload_photos" id="upload" enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="Checkbox" id="cb_foto" name="array_foto" value="88">
<input type="Checkbox" id="cb_foto" name="array_foto" value="89">
<input type="Checkbox" id="cb_foto" name="array_foto" value="90">
<input type="button" onClick="javascript:check_all('yes');" value="alle Aktivieren">
<input type="button" onClick="javascript:check_all('no');" value="alle Deaktivieren">
</form>
Dazu noch das Script im Head-Bereich:
<script language="JavaScript">
<!--
function check_all(action) {
for (i = 0; i <= 5; i++)
if(action == 'no'){
document.getElementsByName('array_foto')[i].disabled = true;
} else {
document.getElementsByName('Accommodation')[i].disabled = false;
}
return
}
//-->
</script>
<form name="upload_photos" id="upload" enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="88">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="89">
<input type="Checkbox" id="cb_foto" name="array_foto[]" value="90"><input type="button" onClick="this.value=cbDeActivate(this.upload_fotos.array_foto[]);" value="alle Aktivieren">
Der Index Operator ist auch in JS ein Indexoperator, du kannst in PHP auch keine Variabel 'xyz[]' nennen.
Du musst auf elements zugreifen
<input type="button"
onClick="this.value=cbDeActivate(this.form.elements['array_foto[]']);"
value="alle Aktivieren">
</form>
Dazu noch das Script im Head-Bereich:
<script language="JavaScript">
da fehlt das type Attribut.
<!--
var Marker = "false";
es gibt in JS boolsche Werte true/false
var Marker = false;
function cbDeActivate(field)
{
if(Marker=="false")
if(!Marker)
wobei - du kannt dir diese if Bedingung komplett sparen:
<script type="text/javascript">
var Marker = false;
function cbDeActivate(field)
{
if(!field) return;
Marker = !Marker;
for(var i = 0; i < field.length; i++)
field[i].checked = Marker;
return Marker ? "alle Dektivieren" : "alle Aktivieren";
}
</script>
Struppi.