heinetz: onclick und href

Hallo Forum,

ich versuche mich gerade folgende Konstruktion:

<html>  
 <form action="site_a.htm">  
...  
 <a href="site_b.htm" onclick="sendlink(this)">  
 </form>  
</html>
formObj = document.forms[0];  
  
function sendlink (obj)  
                 {  
                  formObj.action = obj.href  
                  formObj.submit();  
                 }

klar, was ich vor habe ? sollte eindeutig sein.
Das Verhalten it eigenartig und ich wüsste gerne
warum.

Das Form wird nur abgeschickt, wenn der Link kein
href-Attribut hat. Erst wenn ich das href au dem
a-Tag lösche (und in der Funktion nicht verwende),
klappts. Selbst das hier:

function sendlink (obj)  
                 {  
                  formObj.action = obj.href  
                  formObj.submit();  
                  obj.href=null;  
                 }

... verhindert dass das Form abgeschickt wird und
läd statt dessen die Seite neu obwohl die Anweisung
'Abschicken' vorher definiert ist.

Kann mir dazu jemand etwas sagen ?

danke und beste gruesse,
heinetz

  1. ... mit einem ordentlichen removeAttribute() ging es dann auch ...

  2. Hallo,

    <form action="site_a.htm">
    <a href="site_b.htm" onclick="sendlink(this)">
    </form>

    function sendlink (obj)
                     {
                      formObj.action = obj.href
                      formObj.submit();
                     }

    Das Form wird nur abgeschickt, wenn der Link kein href-Attribut hat.

    einleuchtend, oder? Wenn du auf den Link klickst, konkurrieren zwei Aktionen: Die normale Funktion des Links, eine neue Seite aufzurufen, und das Absenden des Formulars. Ich vermute, es hängt von der Implementierung des Browsers ab, welche der beiden Aktionen "gewinnt".

    Kann mir dazu jemand etwas sagen ?

    Du solltest die Standardaktion (hier: des Links) verhindern, indem du aus dem Eventhandler false zurückgibst.

    Aber wozu machst du überhaupt so eine windige Konstruktion? Wozu ein Link, der nicht linken soll? Warum kein submit-Button, um das Formular abzuschicken?

    Ciao,
     Martin

    --
    F: Was sagt der große Keks zum kleinen Keks?
    A: Du kannst dich jetzt verkrümeln.
  3. <html>

    <form action="site_a.htm">
    ...
    <a href="site_b.htm" onclick="sendlink(this)">
    </form>
    </html>

      
    Hat site\_b.html einen Zweck?  
    Wenn nicht, dann solltest du hier auf den Link verzichten und stattdessen ein anderes Element wählen, ansonsten musst du im onclick Handler einfach ein return false zurückgeben, dann wird der Link nicht ausgeführt.  
      
      
    Struppi.