Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Via JavaScript Checkboxen anhacken





Frage

Hallo Crackz, ich bin auf der Suche einer Möglichkeit, wie man mit JavaScript einige meiner Checkboxen auf meiner Site aktivieren kann. Zum Verständnis: Ich habe eine Seite, auf der ein beliebiger Benutzer eine Abfrage mit Checkboxen machen kann. Ich möchte nun einen Knopf erstellen, mit dem man dem Benutzer eine Auswahl vorschlagen kann. Ich müsste dem Knopf mitgeben können, welche Checkboxen er aktivieren soll. Geht das?? Gruss Marqito

Antwort 1 von Supermax

Wenn du den auszuwählenden Checkboxen eindeutige ID-Tags übergibst, geht das ganz einfach.

z.B.
<input type="checkbox" id="checkbox1" value="Ja" name="blub">


Im javascript-Code dann

element = document.getElementById('checkbox1');
element.checked = true;


Oder auch als Unterelemente des Formulars anzusprechen.
http://de.selfhtml.org/javascript/objekte/elements.htm



.

Antwort 2 von Marqito

Vielen Dank für die Schnelle Antwort. Ich habe es jetzt so gelöst:

Head Bereich:

<script language="JavaScript" type="text/JavaScript">
<!--
function checkboxen() {
document.abfrage.ergaenz.checked = true;
document.abfrage.naturheil.checked = true;
document.abfrage.todesfall.checked = true;
document.abfrage.allgemein.checked = true;
}
//-->
</script>

Das Formular heisst "abfrage" und die Checkboxen heissen "ergaenz", "naturheil", "todesfall" und "allgemein".

Dazu habe ich einen Knopf erstellt (innerhalb des Formulars), um die Funktion beim Draufklicken auszulösen:

<label> Experten
<input type="button" name="Vorschlag" value="Vorschlag" onClick="checkboxen()">
</label>

So funzt es... ;-))

Antwort 3 von rfb

kürzer wäre:

<script type="text/javascript">
function checkboxen() {
with (document.abfrage) {
ergaenz.checked = true;
naturheil.checked = true;
todesfall.checked = true;
allgemein.checked = true;
}}
</script>


Das
language
-Attribut im script-Tag ist nicht mehr zulässig, die Kommentarzeichen indessen überflüssig.

Was bei dir fehlt ist eine Funktion, die den Button per JavaScript erzeugt - denn ansonsten wundern sich User ohne JavaScript, warum ihnen die Expertenmeinung vorenthalten bleibt.

Antwort 4 von Marqito

Cool, vielen Dank. Wie kann ich denn mit einer Funktion einen Button per JavaScript erzeugen?

Grez Marqito

Antwort 5 von Supermax

Einfach an der passenden Stelle mit
document.write();
den entsprechenden HTML-Code ausgeben:

document.write('<input type="button" value="Beschriftung" onClick="..." >');


Antwort 6 von rfb

In moderneren Seiten wird das document.write nicht mehr gerne gesehen (Grundgedanke: strenge Trennung von HTML, CSS und JavaScript), aber ein Element nachträglich einfügen lässt sich auch sehr schön mit den Methoden des DOM realisieren.

<script type="text/javascript">
function checkboxen() {
with (document.abfrage) {
ergaenz.checked = true;
naturheil.checked = true;
todesfall.checked = true;
allgemein.checked = true;
}}

function ergaenzebutton() {
var formular=document.abfrage;
var label=document.createElement("label");
label.appendChild(document.createTextNode("   Experten");
var input=document.createElement("input");
input.type="button";
input.name="Vorschlag";
input.value="Vorschlag";
input.onclick=checkboxen;
label.appendChild(input);
formular.appendChild(label);
}

window.onload=function() {
ergaenzebutton();
}
</script>


Nach dem Laden der Seite wird die Funktion ergaenzebutton aufgerufen die den Button (hier mit label) ins erzeugt und ins Formular hängt.

Besser gleich diese Methode angewöhnen, denn document.write hat den entscheidenden Nachteil, dass damit nachträglich (wenn die Seite einmal geladen ist) nichts mehr geändert werden kann, mit den DOM-Methoden ist das hingegen jederzeit möglich.