onclick Wert ändern?

holzart

Mitglied
Hallo,

ich möchte meinen onclickwert ändern. Je nachdem welches Bild man anklickt, soll eine andere Funktion aufgerufen werden.

HTML:
<form>
<input id="..." type=button value="..." onclick="tuwas(form)">
</form>

HTML:
<script>
function set(){
	if(bedingung){
		document.getElementById("...").onclick = tuwas(form);
	}
        if(bedingung){
		document.getElementById("...").onclick = tunochwas(form);
	}
	else {
		document.getElementById("...").onclick = tunochwasanderes(form);
	}
}

function tuwas(form) {
tudas;
}

function tunochwas(form) {
tudies;
}

function tunochwasanderes(form) {
tujenes;
}
</script>

Leider werden nicht die Funktionen gewechselt. Ich habe schon folgendes Probiert:
document.getElementById("...").onclick = "tuwas(form)";
und document.getElementById("...").onclick = new tuwas(form);

Ich sitze schon 5 Stunden etwa an diesem blöden Problem :/ alles was ich bei g**gle finde ist eine Variable einführen die zwischen 0 und 1 switcht..Es muss doch eine einfache Lösung geben

Gruß
 
Hi,

weis die neue Funktion über eine anonyme Funktion zu:
Code:
document.getElementById("...").onclick = function(){
  tuwas(form);
};
Ciao
Quaese
 
Habe es probiert und klappt noch nicht.

HTML:
document.getElementById("...").onclick = function(){
  tuwas(form);
};

und auch so:

HTML:
document.getElementById("...").onclick = function(){
  tuwas(form){anweisung};
};

und so:

HTML:
document.getElementById("...").onclick = tuwas(form){
  anweisung;
};


HTML:
document.getElementById("...").onclick = new tuwas(form){
  anweisung;
};

Hier mal die Originalanweisung:

HTML:
document.getElementById("preisbutton").onclick = function farbrahmen(form) {
			alert("wird noch aufgerufen");
			hoehe = eval(form.hoehe.value);
			breite = eval(form.breite.value);
			if (breite > hoehe) {
				var zwischenvar = breite;
				breite = hoehe;
				hoehe = zwischenvar;
			}
			stk = eval(form.stk.value);
			groesse = (hoehe * breite)/10000;
			kantenumfang = (2*breite + 2*hoehe)/100;
			material = (12.0*groesse);
			schleifen = kantenumfang * 0.5;
			versiegeln = kantenumfang * 2.5;
			verpackung = (groesse * 9)/stk*1.25;
			if(verpackung < 1){
				verpackung = 1;
			}
			verpacken = (groesse * 10)/stk;
			if(verpacken < 1){
				verpacken = 1;
			}
			gurtmas = (breite * 2)/100 + 0.2 + (hoehe)/100;
				if (gurtmas >= 3 && gurtmas < 4){
					versandkosten = 30;
				}
				else if (gurtmas >= 4 && gurtmas < 5.5){
					versandkosten = 60;
				}
				else if (gurtmas >= 5.5){
					versandkosten = 80;
				}
				else {
					if (stk > 1){
					versandkosten = 7 * stk * 0.6;
					} else {versandkosten = 7}
				}
			stkpreis = (13.5/stk) + material + schleifen + versiegeln + verpackung + verpacken + (versandkosten/stk);
			gesamtpreis = stkpreis * stk;
			form.bruttostkpreis.value = Math.round(stkpreis *1.19 * 100)/100 + " ,- Euro";
			form.nettostkpreis.value = Math.round(stkpreis* 100)/100 + " ,- Euro";
			form.bruttoendpreis.value = Math.round(gesamtpreis * 1.19 * 100)/100 + " ,- Euro";
			form.nettoendpreis.value = Math.round(gesamtpreis* 100)/100 + " ,- Euro";
			};

Das alert wird noch ausgegeben, aber sonst tut sich nix. Finde den Fehler nicht :/
 
So ich hab jetzt herausgefunden, dass er mit der Parameterübergabe wohl ein Problem hat.
Ich habe nun versucht das ohne form zu machen. Nun harperts daran:

HTML:
document.getElementByName("bruttostkpreis").value = 55;

Da kommt er nicht weiter und trägt in das Feld nix ein.

Feld:

HTML:
<input type="text" name="bruttostkpreis" size=30>
 
Ok ich habe es selber gelöst. Das mit der Parameterübergabe denke ich ging nicht, weil die Funktion in einer Funktion war. Ich habe es nun ohne Parameter gelöst. Statt getElementByName habe ich eine ID vergeben und das so gemacht. Das mit Name ging bei mir komischerweise nicht.

Danke für eure Hilfe.
Grüße
 
Zurück