Marcus: DOM - Attribut eines HREFs ändern

Hallo liebe Runde,

Im Rahmen eines durch DOM-Methoden dynamischen Formulares gibt es einen Button:

<a href="#" onClick="theFunction();"><img src="submit.gif" id="theSubmit"></a>

Die "Funktion" des Buttons soll nun aktiv oder inaktiv sein.
Den kompletten <a href> ein- und auszublenden wäre natürlich möglich.
Am liebsten würde ich aber nur das <img> austauschen, und den onClick-Handler z.B. mit einem anderen Funktionsaufruf belegen (oder einfach "#").
Ich habe bisher nur extrem proprietäre MS-Methoden gefunden um den Event-Handler anzusprechen, würde aber gerne im Standard bleiben. Jemand eine Idee?

Vielen Dank & Grüße!

_marcus

  1. hi,

    statt onClick kannst Du den Funktionsaufruf auch direkt in die href reinschreiben:
    <a id="submitButtonLink" href="javascript:theFunction()">knopf oder bild</a>

    im DOM gibt's dann die schöne function getElementById(id), die Dir anhand der ID das betreffende Object zurückliefert. Also änderst Du die href einfach mit:

    getElementById("submitButtonLink").href = "javascript:doNothing()";

    1. Sehr cool!
      Danke, klasse Idee!

  2. <a href="#" onClick="theFunction();"><img src="submit.gif" id="theSubmit"></a>

    Die "Funktion" des Buttons soll nun aktiv oder inaktiv sein.
    Den kompletten <a href> ein- und auszublenden wäre natürlich möglich.
    Am liebsten würde ich aber nur das <img> austauschen, und den onClick-Handler z.B. mit einem anderen Funktionsaufruf belegen (oder einfach "#").

    bild austauschen sollte kein problem sein, selfhtml liefert ja auch beispiele.

    warum den link mit einem anderen funktionsaufruf belegen? -> viel zu kompliziert!

    lass die funktion doch selber entscheiden, ob sie etwas machen soll oder nicht:

    definiere dir einfach eine boolesche variable; je nach dem, ob die funktion aktiv sein soll oder nicht, setzt du sie auf true oder false (zweckmässigerweise gleichzeitig mit dem austauschen des bildes).

    function theFunction(){
    if(tuwas == true){
     //aktionen der funktion ausführen
    }
    else{
     //mach gar nichts
    }