phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 24.12.2004, 14:36   #1
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg

JavaScript: per JS "onBlur="-Wert ändern


Hi,

Ich versuche in einem input-Feld den Wert in onBlur per JS zu ändern. Mit
Code:
document.konfigurator.txt_zeile1v.value = "vorne("+shirtColor+")";
Kann ich den value-Wert erfolgreich anpassen (da gehört er Funktionsaufruf vorne() aber nicht hin ). Mit
Code:
document.konfigurator.txt_zeile1v.onBlur = "vorne("+shirtColor+")";
tut sich aber nix.

Bin nicht der JS-Held, brauch also eure Hilfe! Dankeschön.

Gruß
Tribun
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten


Alt 27.12.2004, 11:07   #2
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg
Hallo? Niemand einen hilfreichen Gedankenblitz??
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten
Alt 27.12.2004, 13:10   #3
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Woher kommt die Variable shirtColor ?
Ansonsten vielleicht so:
Code:
function vorne {
    alert(this.shirtColor);
}

var ele = document.konfigurator.txt_zeile1v;
ele.shirtColor = 'red';
ele.onblur = vorne;
...

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 27.12.2004, 13:43   #4
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg
Hi,

mittlerweile heisst die Funktion "shirtcolor" (nicht mehr "vorne")...

Ich rufe die Funktion auf und übergebe dabei die Farbe (Zahlenwert, z. B. "2").
Das ganze passiert im Formular an 2 Stellen:
1. Wenn eine andere Farbe ausgewählt wird (Radio-Buttons)
2. Wenn die Shirt-Beschriftung (Text) geändert wird

Die Javascriptfunktion muss nun
1. Ein src-Tag ändern bzw. dabei eigentlich PHP-Script aufrufen und Variablen übergeben. Das PHP-Script übergibt dann ein umgefärbtes Bild zurück. (Funktioniert)
2. im input-Tag den Farbwert den Funktionsaufruf in "onBlur" anpassen, damit dort die aktuelle Shirtfarbe drin steht.

Code:
function shirtcolor(shirtColor)
{
	var productsID	= "<?PHP echo $_GET['products_id'] ?>";
	var textZ1v 	= document.konfigurator.txt_zeile1v.value;
	var textZ2v 	= document.konfigurator.txt_zeile2v.value;
	for(i=0;i<document.konfigurator.txtColorVorne.length;++i)
		if(document.konfigurator.txtColorVorne.options[i].selected == true)
			var txtColorV = document.konfigurator.txtColorVorne.options[i].value; 
	for(i=0;i<document.konfigurator.txtFontV.length;++i)
		if(document.konfigurator.txtFontV.options[i].selected == true)
			var txtFontVorne = document.konfigurator.txtFontV.options[i].value; 
	//Bild austauschen
	document.BSchrift_vorne.src="./konfigurator/maketext.php?textZ1v="+textZ1v+"&txtColorV="+txtColorV+"&txtFontV="+txtFontVorne+"&textZ2v="+textZ2v+"&color="+shirtColor+"&products_id="+productsID;
	document.konfigurator.txt_zeile1v.onblur="shirtpic("+shirtColor+")";
}
Sorry, ich verstehe nicht ganz, was

var ele = document.konfigurator.txt_zeile1v;
ele.shirtColor = 'red';
ele.onblur = vorne;

bewirkt.

Danke schonmal!
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:20   #5
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Hi !

Also es ist schon etwas schwierig das mal eben zu erklären, da du einen sehr (sagen wir mal) statischen weg gehst.

In JS kann man Funktionen oder Objekte wunderbar an Objekte kapseln - und das zur Laufzeit. Ein Attribut onblur macht nichts anderes. Es macht/zaubert aus der Angabe im Attribut automatisch eine anonyme Funktion. Kannste dir anschauen, wenn du einfach mal per alert die Variable "document.konfigurator.txt_zeile1v.onblur" ausgeben lässt. Dieses "zaubern" funktioniert aber nur in diesem Fall - wenn du es als Attribut im Quelltext angibst.

Was du machst ist: Aus der Eigenschaft/Variable onblur ein String-Objekt zu machen... klar... ein String-Objekt kann nicht viel machen - daher keine Ausgabe:
Code:
var test = "dies ist ein Text";
test();
...kein Fehler aber auch keine Ausgabe. Genauso ists auch mit den Eventhandlern.

In JS kann man so z.B. gaaanz simpel eine Funktion zuweisen:
Code:
var test = function() {
    alert("hossa!");
}
test();
Und genauso musst du den Event-Hanlder ändern. Problem hierbei ist, dass man "diesen" Funktionen nicht direkt Attribute mitgeben kann, wie du es versucht hast. Daher gibt es hier verschiedene Möglichkeiten:

Möglichkeit 1:
Code:
function shirtpic() {
    alert("ich bin eine Funktion/Methode, die einem Element zugeordnet ist.\n\
Daher kann ich über this auf das Element zugreifen:\
Die Farbe meines Elementes ist: " + this.shirtColor);
}

function shirtcolor(shirtColor) {
    var ele = document.konfigurator.txt_zeile1v;
    ele.shirtColor = shirtColor;
    ele.onblur = shirtpic; // Hier weisen wir die Funktion shirtpic ganz einfach der Variable onblur des Elements "ele" zu.
}
..evtl. ist diese Möglichkeit die beste, da du mit den Eigenschaften des Elementes arbeiten kannst (this.shirtColor). Du bräuchtest also nur ele.shirtColor ändern und das Ergebniss von shirtpic würde darauf zurückgreifen.

Möglichkeit 2, wäre eine neue Funktion zur Laufzeit zu erstellen und diese via eval dem Event-Handler zuweisen:
Code:
function shirtpic(shirtColor) {
    alert("Nun bekomme ich meine Farbe per Parameter: " + shirtColor);
}

var ele = document.konfigurator.txt_zeile1v;
eval("ele.onblur = function() {\
	shirtpic('"+shirtColor+"');\
}");
...verdau das erstmal und spiel mal mit rum. Ist alles sehr praktisch, wenn man es mal verstanden hat.

Gruss
Jan

PS: Wenn du etwas nicht verstehst, dann probier es einfach mal aus und versuch es zu verstehen.
Stuck Mojo ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:31   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Würde nicht auch ganz einfach

HTML-Code:
document.konfigurator.txt_zeile1v.onBlur = vorne(shirtColor);
funktionieren?

P.S. @ Marco: Funktioniert die Umfärberei jetzt gescheit? Hast dich bisher gar nicht wieder gemeldet.

Geändert von seb (27.12.2004 um 14:34 Uhr).
seb ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:33   #7
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Zitat:
Zitat von seb
Würde nicht auch ganz einfach

HTML-Code:
document.konfigurator.txt_zeile1v.onBlur = vorne(shirtColor);
funktionieren?
...nein... das wäre ja ein Funktionsaufruf und der Return-Wer würde der Eigenschaft onblur zugewiesen werden. (das könnte natürlich auch wieder eine Funktion sein , dann könnte es klappen )
Stuck Mojo ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:34   #8
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg
Ah! Das leuchtet mir schon einigermassen ein.
Ich kau' das mal durch und experimentiere ein bisschen.
Dankeschön, Jan!
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:35   #9
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg
Ah! seb, du weisst ja, wofür ich das brauch'...
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten
Alt 27.12.2004, 14:38   #10
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
...nein... das wäre ja ein Funktionsaufruf und der Return-Wer würde der Eigenschaft onblur zugewiesen werden.
Achso, logisch *andiestirnklatsch*.
seb ist offline   Mit Zitat antworten
Alt 27.12.2004, 18:35   #11
TP-Insider
 
Benutzerbild von tribun
 
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
tribun ist auf einem guten Weg
@ Jan
Ein riesen "Dankeschön" an Dich!! *blumenüberreichend*
Mit deiner Möglichkeit 2 komme ich prima klar!
Code:
	var ele = document.konfigurator.txt_zeile1v;
	eval("ele.onblur = function() {\
		shirtpic('"+shirtColor+"');\
	}");
Grüße
Tribun
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
tribun ist offline   Mit Zitat antworten
Alt 27.12.2004, 18:39   #12
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
super! Die andere ist zwar schöner und flexibler, aber wenn's reicht

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
JavaScript: per JS "onBlur="-Wert ändern JavaScript: per JS "onBlur="-Wert ändern
« [reg_exp] extention am effektivsten entfernen | PHP Frage zu include »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit $REMOTE_ADDR MaxPayne Traum-Dynamik 5 25.03.2003 22:31
Mit Javascript Status von Checkboxen usw. ändern - wie? Boris Javascript 7 26.02.2003 18:26
linkfarbe mit javascript ändern bball Javascript 4 04.09.2002 16:34
Text mit Javascript nachträglich ändern?! René Javascript 7 06.12.2001 23:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:15 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67