Tim: Probleme mit onchange="spring()"

Ich würde gerne mein Menü in eine SELECT Fromular stecken.

<script type="text/javascript">
//<![CDATA[
 function spring() {
    var welcherLink = document.jump.URLs.selectedIndex;
    document.jump.URLs.selectedIndex = "0";
    if(welcherLink > "0"){
       top.location.href = document.jump.URLs.options[welcherLink].value;
    }
 }
//]]>
 </script>

<form action="" name="jump">
<select name="URLs" onchange="spring()">
<option value="hallo.htmll">hallo</option>
</form>

Aber ich bekomme zwei Fehlermeldungen:

There is no attribute  <form action="" name="jump">
und

Document type does not allow element ... here; missing one of ... start-tag  <select name="URLs" onchange="spring()">

Kann mir da jemand weiterhelfen.

Tim

  1. Also schauen wir mal. Bin zwar schon seit einiger Zeit aus dem nativen JS raus (jquery rockt!) versuche aber so gut ich kann zu helfen.

    1. würde ich das select erstmal wieder schliessen.
    2. würde ich bei dem htmll das letze l streichen.
    3. würde ich Attribute immer in einer Formm notieren, entweder alles groß oder alles klein. Ist aber nicht zwingend.
    4. wenn das formular eine leeren action hat, dann kannst die action gleich ganz weglassen.
    5. kommt bei der Funktion ein Parameter mit dem Event mit. Denn kannst du im Funktionskopf auffangen:
    function spring(e)
    Mit dem Event kannst du herausfinden welches Element sich geändert hat. In diesem Fall wäre es eine Selectbox. Dann kannst du dir das gedöns mit Name etc. sparen und die Funktion würde auch bei anderen Elementen (eventuell in anderen Projekten) funktionieren.

    Hoffe ich konnte dir etwas helfen

    Gruß
    der bald ausgeschlafene
    T-Rex

  2. Om nah hoo pez nyeetz, Tim!

    Ich würde gerne mein Menü in eine SELECT Fromular stecken.

    »» <script>	  
    
    >  function spring() {  
    >     var welcherLink = document.jump.URLs.selectedIndex;  
    >     document.jump.URLs.selectedIndex = "0";  
    >     if(welcherLink > "0"){  
    >        top.location.href = document.jump.URLs.options[welcherLink].value;  
    >     }  
    >  }  
    > </script>
    
    

    Zusätzlich zu dem, was T-Rex bereits sagte:

    • in HTML5 ist das type-Attribut überflüssig
    • Das //<![CDATA[ //]]> ist überflüssig
    • imho hat das document-Objekt keine Methode jump, du möchtest ein <http://de.selfhtml.org/javascript/objekte/forms.htm@title=Formular ansprechen>
    • Du kannst in diesem Forum JavaScript als JavaScript und HTML als HTML auszeichnen

    Matthias

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Messer und Messergebnis.

    1. Hi,

      top.location.href = document.jump.URLs.options[welcherLink].value;

      • imho hat das document-Objekt keine Methode jump,

      Methodenaufrufe sehen ja auch anders aus.

      du möchtest ein <http://de.selfhtml.org/javascript/objekte/forms.htm@title=Formular ansprechen>

      Macht er doch auch – über den Namen, Schema #2.

      Es scheint hier aber gar nicht um JavaScript zu gehen, sondern um die Fehler im HTML, die der Validator anmerkt.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?