Kleiner Checkbox Teufel
Cruz
- javascript
0 Antje Hofmann0 Cruz
0 Calocybe
Hi wie gehts deiner Mutter?
Ich habe hier ein kleines Problem mit einem Checkbox, der nicht ungecheckt werden möchte.
Eigentlich geht das doch so:
document.Formular.Favoriten[2].checked = true;
(Zitat aus Selfhtml hihi)
So..mein Checkbox hat aber nur ein Element, also Favoriten[0], ach und der Name ist eine Zahl. Und außerdem habe ich ganz viele Checkboxen, die einfach durchnummeriert sind, also so:
<input type checkbox name="0" value="">
<input type checkbox name="1" value="">
<input type checkbox name="2" value="">
.
.
.
So..jetzt möchte ich, daß der Typ höchstens 2 auswählen kann, d.h. wenn er den dritten clickt kriegt er einen Alert und der Checkbox soll wieder ungecheckt werden.
Meine function kriegt den Namen der Checkbox übergeben (also eine Zahl):
function CheckSelection(checkbox_name) {
}
kürzen wir den Längencheck ab und springen direkt zum springenden Punkt...
var myObject="document.forms[0]."+ checkbox_name +"[0]";
myObject.checked=false;
...geht nicht. Ok vielleicht hat er ein Problem damit, daß die Zahl ein integer ist?
checkbox_name.toLowerCase(); (damit es ein string wird)
var myObject="document.forms[0]."+ checkbox_name +"[0]";
myObject.checked=false;
...geht auch nicht.
eval ('document.mailform.'+ checkbox_name +'[0].checked=false');
geht auch nicht.
Hier bin ich leider mit meinem Latein am Ende. Kann mir jemand einen Tipp geben?
Gruß und Dank
Cruz
Hi Cruz
Hi wie gehts deiner Mutter?
danke, wieder besser :-)
Ich habe hier ein kleines Problem mit einem Checkbox, der nicht ungecheckt werden möchte.
<input type checkbox name="0" value="">
<input type checkbox name="1" value="">
<input type checkbox name="2" value="">
.
So..jetzt möchte ich, daß der Typ höchstens 2 auswählen kann, d.h. wenn er den dritten clickt kriegt er einen Alert und der Checkbox soll wieder ungecheckt werden.
var myObject="document.forms[0]."+ checkbox_name +"[0]";
myObject.checked=false;...geht nicht. Ok vielleicht hat er ein Problem damit, daß die Zahl ein integer ist?
genau: versuche mal: var myObject="document.forms[0]."+ checkbox_name +'["0"]';
also explizit in Anführungsstriche setzen
besser ist aber, dass gar nicht zu verwenden und vor den Namen einfach einen Buchstaben setzen.
Viele Grüße
Antje
Danke Antje..klappt keider nicht :(
Buchstaben sind leider nicht so der Hit..weil ich die Inidizes brauche und keine Lust hab zu splitten ;)
Hallo Cruz
Danke Antje..klappt keider nicht :(
Buchstaben sind leider nicht so der Hit..weil ich die Inidizes brauche und keine Lust hab zu splitten ;)
alternativ folgende Variante:
onclick="functionsname(this.name)"
in der Funktion dann:
functionsname(e)
e kannst du dann einfach als Parameter übergeben
Beispiel:
<form name="a"><input type="Checkbox" name="0" onClick="test(this.name)"value="v"></form>
<script language="JavaScript">
<!--
function test(e) {
alert(e);
document.a.elements[e].checked=false;
}
//-->
</script>
Viele Grüße
Antje
<!--
function test(e) {
alert(e);
document.a.elements[e].checked=false;}
//-->
</script>
excellent so gehts! Danke Antje!
Gruß
Cruz
Hi Antje!
<form name="a"><input type="Checkbox" name="0" onClick="test(this.name)"value="v"></form>
<script language="JavaScript">
<!--
function test(e) {
alert(e);
document.a.elements[e].checked=false;}
//-->
</script>
Warum dann nicht gleich das ganze Objekt uebergeben?
<form name="a"><input type="Checkbox" name="0" onClick="test(this)" value="v"></form>
<script language="JavaScript"><!--
function test(e) {
alert(e.name);
e.checked=false;
}
//--></script>
Nun? ;-)
So long
Warum dann nicht gleich das ganze Objekt uebergeben?
<form name="a"><input type="Checkbox" name="0" onClick="test(this)" value="v"></form>
<script language="JavaScript"><!--
function test(e) {
alert(e.name);
e.checked=false;
}
//--></script>Nun? ;-)
So long
Ja so ist noch ein bisschen schöner :) (klappt auch hihi)
Hi!
Hi wie gehts deiner Mutter?
Keine Ahnung, vielleicht frag ich sie mal, wenn ich sie seh. ;-)
Eigentlich geht das doch so:
document.Formular.Favoriten[2].checked = true;
Was soll dieser Array-Zugriff? Eigentlich muss es
document.Formular.CheckboxName.checked = true;
heissen.
(Zitat aus Selfhtml hihi)
Sorry, ist leider unwesentlich.
Meine function kriegt den Namen der Checkbox übergeben (also eine Zahl):
Nein, der Name ist ein String, auch wenn er wie eine Zahl aussieht.
function CheckSelection(checkbox_name) {
}
var myObject="document.forms[0]."+ checkbox_name +"[0]";
myObject.checked=false;
...geht nicht. Ok vielleicht hat er ein Problem damit, daß die Zahl ein integer ist?
Erstens ist der Checkboxname ein String und zweitens musst Du den Gesamtstring in eval() huellen, damit
er ausgewertet wird. Aber einfacher ist
document.forms[0].elements[checkbox_name].checked = false;
Hier bin ich leider mit meinem Latein am Ende. Kann mir jemand einen Tipp geben?
Immer schoen Doku lesen. ;-) http://developer.netscape.com/docs/manuals/js/client/jsref/checkbox.htm
So long
Eigentlich geht das doch so:
document.Formular.Favoriten[2].checked = true;Was soll dieser Array-Zugriff? Eigentlich muss es
document.Formular.CheckboxName.checked = true;
heissen.
Ich glaube das ist nicht ganz richtig...was machst du wenn du mehrere Checkboxen mit dem gleichen Namen hast?
also
<input tpye=checkbox name="kunz">
<input tpye=checkbox name="kunz">
<input tpye=checkbox name="kunz">
<input tpye=checkbox name="kunz">
wenn du den 3. checken willst musst du doch so:
document.Formular.kunz[2].checked = true;
document.Formular.CheckboxName.checked = true; klappt vielleicht im IE wenn nur eine Checkbox mit dem Namen da ist...
Hi!
Ich glaube das ist nicht ganz richtig...was machst du wenn du mehrere Checkboxen mit dem gleichen Namen hast?
Ist wahr. Seltsamerweise laesst die HTML-Spec das sogar zu, wenn es eigentlich auch unlogisch ist (im
Gegensatz zu Radio buttons).
Man muesste mal genau untersuchen, wie die Abbildung auf das JS-Objektmodell funktioniert. Vielleicht
ergibt eine einzelne Checkbox ein entsprechendes Objekt, mehrere dagegen ein Array von Checkbox-
Objekten? Auf diesen Fall geht die JS-Spec leider nicht ein.
document.Formular.CheckboxName.checked = true; klappt vielleicht im IE wenn nur eine Checkbox mit dem Namen da ist...
Schau Dir doch noch mal genau den Link an, den ich gepostet habe. Wen interessiert schon der IE... ;-)
So long
Vielleicht
ergibt eine einzelne Checkbox ein entsprechendes Objekt, mehrere dagegen ein Array von Checkbox-
Objekten? Auf diesen Fall geht die JS-Spec leider nicht ein.
Ich denke das müsste der Fall sein.
Antjes Lösungsvorschlag beruht ja darauf die Checkboxen ohne Index anzusprechen, und es hat sowohl im Netscape als auch im IE geklappt.