|
|
|
|
|
|
|||||||
| JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene |
|
|
|
LinkBack | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink) |
|
Benutzer
Registriert seit: 19.10.2009
Beiträge: 69
PHP-Kenntnisse: Anfänger ![]() |
Hallo,
ich würde gerne alle checkboxen nach funktionsstart auf true setzen. leider wird nur die erste berücksichtigt, der rest nicht. hier erstmal mein code: Code:
<script type="text/javascript">
function alle () {
document.getElementById("checkbox").checked = true;
}
</script>
<form name="form" action="">
<input type="checkbox" id="checkbox" name="1" >
<input type="checkbox" id="checkbox" name="2" >
<input type="checkbox" id="checkbox" name="3" >
<input type="checkbox" id="checkbox" name="4" ><br>
<div type="button" onclick="alle()">alle</div>
</form>
for( var i = 0;i<1000;i++){ document.form.+i+.checked=true;} oder so xD aber erstmal die id, warum werden nicht alle gechecked sondern nur die erste? danke schomal. |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Supermoderator
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Eine ID heißt deshalb ID, weil sie eine IDentifikation erlaubt, das heißt auch, dass eine ID auf einer Seite einmalig sein muss und nur bei einem Element vorkommen kann.
Was du suchst, ist getElementsByTagname('input') mit der Prüfung, ob das Attribut type den Wert "checkbox" hat. Nicht getElementById().
__________________
Take your Linux to the next level with Refining Linux! |
|
|
|
|
|
#4 (permalink) | |
|
Moderator
Registriert seit: 28.03.2010
Beiträge: 1.966
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() |
Du darfst aber nicht so mit IDs arbeiten, weil HTML das schlicht und einfach nicht erlaubt - eine ID muss dokumentweit eindeutig sein.
Zitat:
Wenn du mit mehreren Elementen etwas machen willst - dann brauchst du eine Schleife. Gehe bitte folgendermaßen vor: 1. Lerne Grundlagen von HTML 2. Lerne Grundlagen von JavaScript 3. (optional) Frage hier wieder nach, wenn du noch weitere Probleme damit hast - aber erst dann, wenn du Schritt 1. und 2. abgearbeitet hast!
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? |
|
|
|
|
|
|
#5 (permalink) |
|
Supermoderator
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Du nimmst auch kein Blatt vor den Mund, oder?
__________________
Take your Linux to the next level with Refining Linux! |
|
|
|
|
|
#7 (permalink) |
|
Benutzer
Registriert seit: 19.10.2009
Beiträge: 69
PHP-Kenntnisse: Anfänger ![]() |
Hey super danke dir. hab mich ma in js eingelesen aber getelementbytagname war mir noch unbekannt =)
ich musste nur noch ne schleife einbinden und so werden alle nun gechecked =) Code:
function alle () {
for(var i = 0; i<100;i++){
document.getElementsByTagName("input")[i].checked = true;
}
}
|
|
|
|
|
|
#8 (permalink) | |
|
Supermoderator
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Zitat:
Im Übrigen wäre es sinnvoller, die Funktion einmal vor der Schleife aufzurufen anstatt zig mal innerhalb. Unnötiger Overhead, außerdem kannst du damit gleich die Menge an Schleifendurchläufen festlegen. Code:
function alle () {
var checkboxes = document.getElementsByTagName("input");
for(var i = 0; i < checkboxes.length; i++){
checkboxes[i].checked = true;
}
}
__________________
Take your Linux to the next level with Refining Linux! |
|
|
|
|
|
|
#9 (permalink) |
|
Moderator
Registriert seit: 18.07.2005
Beiträge: 2.837
![]() |
Wobei die Funktion noch praktischer wäre, würdest du die Checkboxen vorher zählen, sonst musst du bei einer Wiederverwendung des Scripts jedesmal die Anzahl der Schleifendurchläufe ändern. Bei einer Anwendung, bei der sich die Anzahl der Checkboxen dynamisch ändern kann, müsstest du mit diesem Schnipsel bereits ganz aufgeben.
Gruß [edit] Hey Manko, da hast du jetzt aber drübereditiert ![]() Geändert von Asipak (21.07.2010 um 18:02 Uhr). |
|
|
|
|
|
#10 (permalink) |
|
Moderator
Registriert seit: 28.03.2010
Beiträge: 1.966
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() |
[OT]
In Bezug auf was hätte ich das tun sollen ...? Das Grundlagenwissen über HTML fehlt, ist aus der Problembeschreibung offensichtlich. Und dass es absolut unsinnig ist, auf defektem HTML überhaupt mit JavaScript arbeiten zu wollen, ist auch ein verbreiteter Erfahrungswert. Deshalb kann die Empfehlung hier nur lauten: Lerne Grundlagen, und zwar in der angegebenen Reihenfolge. Und das bringe ich lieber deutlich zum Ausdruck, als mit so viel Zucker verkleistert, dass der Frager dann doch wieder nur nach einer Reparatur seines defekten Codes zu fragen geneigt ist - selbst wenn wir die für ihn vornehmen, hilft ihm das nämlich auf Dauer nicht weiter, das nächste Problem gleicher Bauart kommt dann bestimmt. Bei sämtlichen clientseitigen Problemen gilt: Immer zuerst validen Code (HTML/CSS) herstellen, bevor man überhaupt mit der Problemanalyse weiter macht. [/OT]
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|