Webstatt.org - Community seit 2006 - 2012 (2024?)

eventhandler hinzufügen

Avatar user-182
22.01.2007 14:57

moin leute,

titel sagt eigentlich schon alles. was ist hier falsch?
document.getElementByName("benutzername"zwinkern.attachEvent('onclick', 'this.value=""'zwinkern;
<input type="text" name="benutzername" value="bla" />

soll praktisch so werden:
<input type="text" name="benutzername" value="bla" onclick="this.value='';" />


lg,
franky

Seid ihr auch schon wix'r? xD
Avatar user-300
22.01.2007 15:05

Das attachEvent kannte ich bisher noch nicht, aber mit unubtrusive Javascript sollte man dein Problem lösen können lächeln

Avatar user-162
22.01.2007 15:36

vor allem:
Würde für ein Beispiel nicht ein onfocus genügen? Du willst ja dass wenn man ins Inputfeld klickt, dass dieses geleert wird. Das geht auch mit onfocus="this.value=' ';"

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-182
22.01.2007 15:37

Danke, aber irgendwie geht das auch nicht =/
    <script type="text/javascript"><!--//--><![CDATA[//><!--
function h6p_addevent(onwas, func){
if(window.addEventListener) return window.addEventListener(onwas, func, false);
else if (window.attachEvent) return window.attachEvent("on" + onwas, func);
else if (document.getElementById) return window.onwas = func;
}

loginbarjs = function(){
document.getElementsByName("benutzername"zwinkern.onclick = function(){
document.getElementsByName("benutzername"zwinkern.value = '';
}
}

onloadh6p = function(){
loginbarjs();
}

h6p_addevent('load', onloadh6p);
//--><!]]></script>


sonst noch Vorschläge?

Lg

Seid ihr auch schon wix'r? xD
Avatar user-253
22.01.2007 18:01

Über eine sichere Möglichkeit, einen Eventhandler zu ergänzen, also ggf zusätzlich zu einem vorhandenen, würde ich mich ebenfalls freuen.
Ich habe noch keine browserübergreifende Lösung gefunden

Avatar user-290
22.01.2007 19:15

voilá ... oder so ähnlich


<script type="text/javascript">
function bla() {
InputNode = document.getElementsByName("benutzername"zwinkern[0];
InputNode.onclick = function() {
this.value="";
}
}
</script>


vg, René

Avatar user-253
22.01.2007 19:22

Soweit war ich auch schon. Mein Problem ist folgendes *threadentführ*

Ich habe ein Formularfeld
<input type="text" name="tollesFeld" onclick="eineFunktion();" ... />

Und dieser Funktion will/muss/soll ich nun weitere Funktionen als onClick Handler hinzufügen.

Danke schon einmal

Avatar user-290
22.01.2007 20:50

Evtl. kann dir da diese Bibliothek helfen. Die scheint ja dieses Problem zu lösen...
Dieses "addEvent-Problem" scheint ja ziemlich popelig zu sein mit einigen Workarounds.
Es gab sogar ein addEvent() Contest .... *g* ... schon krass, dass es in JS immernoch so schlimme und nervenzerstörende Probleme mit der Browserkompatibilät gibt.

Avatar user-253
22.01.2007 21:26

Super. Vielen user-158k.

Die Bibliothek in deinem Link hat zwar nicht direkt geholfen, da weint der IEX noch (vielleicht liegt es auch an mir). Aber die dort angesprochene klappt prima.

Sehr sehr geil.

Avatar user-290
22.01.2007 21:46

ansonsten bin ich soweit gekommen:


<script type="text/javascript">
function bla() {
InputNode = document.getElementsByName("benutzername"zwinkern[0];
this.oldValue = InputNode.onclick;

this.newValue = function() { // Hier kommen die neuen Methoden und Eigenschaften
InputNode.value=''; // z. B. leeres Input-Feld
}

InputNode.onclick = function() {
oldValue();
newValue();
}
}
</script>


das funktioniert zwar in beiden Browsern. Aber is ein bischen blöd, denn man kann nicht mit this auf das aktuelle Objekt beziehen. (edit: is eigentlich die kruxx, aber was solls lächeln)
Find ich aber subjektiv besser als die bib *g*

Avatar user-253
22.01.2007 22:10

Allerdings habe ich noch nicht verstanden, wie ich in später hinzugefügten Funktionen auf das "this" zugreifen kann. Es ist ja erst einmal nicht möglich Parameter zu übergeben.
Mein Ansatz bisher ist über das EVENT Objekt von JS per TARGET oder SRCELEMENT auf das auslösende Objekt zuzugreifen. Im FF und IE klappt es, leider aber umständlich, da die Zugriffswege beider Browser sich unterscheiden.

Im Endeffekt ist deine Version zwar schön und reicht oft aus, mein Plan ist allerdings einen Formvalidator zu schreiben, der so wenig Anpassung im Code wie möglich verlangt.
Also automatisch die Prüfungen des Formulars und vielleicht der Felder als Events hinzufügt und die alten beibehält. Einzig über den Weg der Markierung als Pflichtfelder und Art der Pflichtfelder bin ich mir noch nicht sicher.
Bisher denke ich entweder an Pseudo-Attribute oder eine CSS-Klasse. Auch wenn ich hier auf Anregungen sehr gespannt bin, ist es ein anderes Thema