• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

.js file auswahlt mit checkbox

Status
Für weitere Antworten geschlossen.

ben

Mitglied
hallo
also ich hab ein problem ich moechte gerne mit einer checkbox auswahlen koennen welche .js datei genommen wird. Hier meine codes: (und jaja ich weis im html code fehlt noch einiges aber es geht mir HIER NUR um den javascriptcode)
HTML:
<html>
<head>
<script language="javascript">


if(document.form.box.checked == true) {
 document.write("<script type='text/javascript' src='test.js'></sc" + "ript>");
// den script tag hab ich geteilt damit das besser funktioniert das hab ich beim googlen gefunden
}else {
document.write("<script type='text/javascript' src='testzwei.js'></sc" + "ript>");
}
</script>

 </head>
<body>


<form name="form">
<input type="checkbox" name="box" />
<input type="button" value="Click" onclick="check()" />

</form>

</body>
</html>
so und meine .js dateien
test.js
Code:
function check() {
alert('eins')
}
testzwei.js
Code:
function check() {
alert('zwei')
}
die beiden javascript dateien sind nur zum testen welche datei gewahlt wurde

wie kann man den fehler beheben und wo liegt dieser?

vielen dank im voraus
ben
 
Werbung:
Das kann so leider nicht funktionieren. Denn du fragst ab, ob deine Box gechecked ist, bevor sie überhaupt existiert. Damit das ganze funktioniert, brauchst du ein Formular mit einer action, die wieder auf diese Seite führt. Das ganze könnte per "get" übergeben werden (also in der url), sodass die Box durch das get entweder checked oder nicht checked ist. Und selbst dann wäre eine Abfrage erst sinnvoll, wenn das Dokument shcon fertig geladen wurde. Dafür brauchst du dann
Code:
window.onload = function() {
   // dein Code
  if....
};

Was hat es eigentlich mit dem </sc"+ "ript> auf sich?
Geht nicht einfach </script> ?
 
also muss ich meinen html code mit document.write() in javascript packen bevor dem if ? und dann sagen wann der welche .js datei verwenden soll?

mit dem </sc" + "ript> hat es auf sich das beispiel:
Code:
<script type="text/javascript">

document.write("</script>");
// beispiel 1


document.write("</sc" + "ript");
// beispiel 2


</script>


ich hab das erst wie in beispiel 1 gemacht aber da schliest der den <script> von ganz oben dh alles danach waere kein javascript mehr.
bei beispiel 2 nimmt der sich erst das </sc und setzt das dann mit ript> zusammen sodass der <script> tag oben nicht geschlossen wird.

So hab ich das verstanden als ich gegooglet hab aber weitere erlauterugen/meinungen/verbesserungen sind gerne gesehen :)
 
Werbung:
ich hab das erst wie in beispiel 1 gemacht aber da schliest der den <script> von ganz oben dh alles danach waere kein javascript mehr.
bei beispiel 2 nimmt der sich erst das </sc und setzt das dann mit ript> zusammen sodass der <script> tag oben nicht geschlossen wird.
Deshalb muss das schliessende Tag einfach maskiert werden:

HTML:
<\/script>

Warum willst du denn unbedingt zwei unterschiedliche Funktionen aufrufen?
 
ich bastel an einem mal feld mit canvas und ich will da unterschiedliche sachen einbauen..

ich hab das mal geandert aber ich kriege da immer nur die zweite funktion angezeigt was mache ich falsch?

Code:
<html>
<head>
<script language="javascript">

window.onload = function() {
document.write("<form name='form'><input type='checkbox' name='box' /><input type='button' value='Click' onclick='check()' /></form>");


if(document.form.box.checked == true) {
 document.write("<script type='text/javascript' src='test.js'><\/script>");
// den script tag hab ich geteilt damit das besser funktioniert das hab ich beim googlen gefunden
}else {
document.write("<script type='text/javascript' src='testzwei.js'><\/script>");
}

}
</script>

 </head>
<body>

</body>
</html>
 
ich bastel an einem mal feld mit canvas und ich will da unterschiedliche sachen einbauen..

ich hab das mal geandert aber ich kriege da immer nur die zweite funktion angezeigt was mache ich falsch?

Das war es was ich meinte. Dein denken ist noch ein wenig falsch. :)
Denn du musst dir das so vorstellen.
Wenn die Seite fertig geladen wurde, wird dein Code ausgeführt. Nun fragt er ab, ob die Checkbox schon gesetzt wurde. Da diese ja nie beim neu laden gesetzt ist (Es sei denn man stellt es so ein) wird auch immer die 2. Option angezeigt.
Du musst also ein Formular schreiben, mit der Checkbox. Dieses dann abschicken und dann über eine Serverseitige Sprache (PHP z.B.) abfragen, ob die Box gesetzt ist und machst dann darüber die Abfrage welches Script eingebunden werden soll. :)

Des weiteren ersetzt document.write das ganze html, wenn die Seite einmal ausgeladen ist (Falls ich mich nicht täusche)

Deswegen greif dabei lieber auf PHP oder sonstige Server Sprachen zurück :) Hoffe mein Text lässt ein wenig verstehen =)
 
Werbung:
achso wenn das dann aufgerufen wird bei der seiten ladung kann man das nicht so machen das man in die checkbox onclick oder so einbaut die dann eine js. datei ausgewahlt wurd und dann auf den button die function in den javascript datein aufrufen.

ok das problem ist ich kenn nicht php aus

parameter wie macht man die??


ware gut wenn es irgendeine loesung mit html/css/javascript gibt den nur das kann ich
 
parameter wie macht man die??


ware gut wenn es irgendeine loesung mit html/css/javascript gibt den nur das kann ich
Diese zwei Sätze wiedersprechen sich stark. Du willst doch nicht erzählen, dass du JS kannst und nicht weiß was ein Parameter ist?
 
Werbung:
ja sorry das hab ich ein bisschen blod formuliert kann in anfuhrungs zeichen. ich hab ein bisschen ahnung kann password abfragen/ farbanderungen/ rechner und so machen aber ich hab javascript nie gelernt sondern mit selbst beigebrach so gegen ende der sommerferien 2009.

also ich weis nicht was ein parameter ist :D
 
Hier nur mal ein kleiner Einblick was ein Parameter ist.
Was eine Variable ist weisst du hoffentlich :)
Code:
function sayHello(name) {
  alert("Hello " + name + "!");
}

sayHello("Gilles");
sayHello("ben");
sayHello("struppi");

Dies würde uns nacheinander begrüßen. Es ist die selbe Funktion, jedoch wurde immer der Parameter "name" geändert.
Du kannst auch mehrere Parameter benutzen

Code:
function plus(zahl1, zahl2) {
  return zahl1+zahl2;
}

alert(plus(2,3));

Der Code würde 5 ausgeben. Wenn du auch nicht weisst was ein return Wert ist, solltest du dich auf jeden Fall erst mal nur mit den Basics beschäftigen bevor du mit deinem problem weiter machst :)
 
ah ok danke ich habe parameter schon mal gesehen aber nie wirklich benutzt.

Return kenn ich nur von der zeile return false;
ich guck mir das alles noch mal an

danke
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben