Jens K.: Formular-action vor submit per JS ändern

Hallo!

Ich möchte mit Hilfe eines Formulars eine bestimmte Seite im selben Frame öffnen, in dem sich auch das nachfolgende Formular befindet. Die Struktur, nach der die aufzurufenden Seiten abgelegt sind, lautet: "presse/JJJJ/JJJJ.htm", wobei JJJJ die vierstellige Jahreszahl ist, die in dem nachfolgenden Formular ausgewählt wird.

  
<form name="form_presse">  
  <div align="left">Jahrgang&nbsp;  
    <select name="jahrgang" size="1">  
      <option>2008</option>  
      <option>2007</option>  
      <option>2006</option>  
    </select>  
    &nbsp;  
    <input type="button" value="öffnen" onClick="document.forms.form_presse.action='presse/'+jahrgang.value+'/'+jahrgang.value+'.htm'; submit();">  
  </div>  
</form>  

Das Formular funktioniert auch wie gewünscht im Firefox, allerdings gibt der IE7 die Fehlermeldung 403 zurück, anstatt die ausgewählte Seite zu öffnen.

Zunächst hatte ich die Änderung der action des Formulars im onclick-Event eingehängt und den Button als submit-Button erstellt. Das hat aber zu demselben Verhalten im Firefox und IE7 geführt.

Für einen guten Tipp, wie ich das Formular im IE7 zum Laufen bekommen kann, wäre ich sehr dankbar,
viele Grüße
Jens

  1. Hi,

    <form name="form_presse">

    <div align="left">Jahrgang&nbsp;
        <select name="jahrgang" size="1">
          <option>2008</option>
          <option>2007</option>
          <option>2006</option>
        </select>
        &nbsp;
        <input type="button" value="öffnen" onClick="document.forms.form_presse.action='presse/'+jahrgang.value+'/'+jahrgang.value+'.htm'; submit();">
      </div>
    </form>

      
    
    > Das Formular funktioniert auch wie gewünscht im Firefox, allerdings gibt der IE7 die Fehlermeldung 403 zurück, anstatt die ausgewählte Seite zu öffnen.  
      
    das dürfte daran liegen, dass der IE nicht über so viel Phantasie verfügt wie der FF, der die value-Eigenschaft des ausgewählten option-Elements auch als value im übergeordneten select dupliziert.  
    Willst du es browserübergreifend hinkriegen, solltest du über selectedIndex des select-Elementobjekts den ausgewählten Eintrag ermitteln und dann dessen value abfragen.  
      
    
    > Zunächst hatte ich die Änderung der action des Formulars im onclick-Event eingehängt und den Button als submit-Button erstellt. Das hat aber zu demselben Verhalten im Firefox und IE7 geführt.  
      
    Ja, sicher. Da hast du an einer völlig falschen Schraube gedreht.  
      
    So long,  
     Martin  
      
      
    PS: Das onclick-Attribut hat keinen Großbuchstaben! Die Unart, "onClick" zu schreiben, sieht man zwar oft, richtiger wird es davon aber nicht. HTML sieht gnädig über diesen Fehler hinweg - XHTML nicht.
    
    -- 
    Alkohl ist ungesund,  
    Rauchen ist schädlich,  
    Sex ist unanständig  
    - und die Erde ist eine flache Scheibe.
    
    1. Hallo Martin!

      Danke für den guten Tipp, hab meinen Code wie folgt geändert und konnte ihn erfolgreich im Firefox und IE testen.

        
      <form name="form_presse">  
        <div align="left">Jahrgang&nbsp;  
          <select name="jahrgang" size="1">  
            <option>2008</option>  
            <option>2007</option>  
            <option>2006</option>  
          </select>  
          &nbsp;  
          <input type="button" value="öffnen" onclick=" document.forms.form_presse.action='presse/'+document.form_presse.jahrgang.options[document.form_presse.jahrgang.selectedIndex].text+'/'+document.form_presse.jahrgang.options[document.form_presse.jahrgang.selectedIndex].text+'.htm'; submit();">  
        </div>  
      </form>  
      
      

      Viele Grüße
      Jens