Announcement

Collapse
No announcement yet.

JS Problem mit IE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JS Problem mit IE

    Hallo!
    Ich benutze ein kleines JS-Script, dass mir den Wert des Action-Parameters setzen soll. Im FF funktioniert das auch einwandfrei. Im IE (6 und 7)leider nicht. JS habe ich dort natürlich auch aktiviert!

    Hat jemand ne Idee woran das liegen könnte?
    Code:
    <script type="text/javascript">
    function setAction(frm, target){
    	window.alert(target);
    	document.getElementById(frm).action.value=target;
    	window.alert(document.getElementById(frm).action.value);
    }
    </script>
    Der Aufruf über:
    HTML Code:
    <html:submit onclick="setAction('ExampleForm', 'reload');" styleClass="button">
    senden
    </html:submit>
    Beim FF geht 2x ein Fenster mit dem Inhalt 'reload' auf.
    Beim IE 1x 'reload' und das 2. mal 'undefined'.

    Irgendwie interpretiert der IE das falsch...


    Grüße

  • #2
    Hallo,

    wenn du mit Action-Parameter den Wert des Attributes "action" eines Formulars meinst und diesen ändern möchtest, dann solltest du das .value weglassen. Das Attribut "action" hat keine Eigenschaft value!

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo!
      Danke für deine Antwort.

      Anhand des Parameters 'action' soll entschieden werden, welche Funktion in meiner Action-Klasse (Java) aufgerufen wird. Die Funktion heißt also 'reload'.


      Erreichen tue ich damit, dass ich eine Form senden kann, die dann versch. Java-Funktionen anstößt, jenachdem welcher Button geklickt wurde.

      HTML Code:
      <html:form styleId="exampleform" action="Example.do">
      
      ...
      <html:submit onclick="setAction('exampleform', 'reload');" styleClass="button">
        sende1             
      </html:submit>
      
      ...
      
      <html:submit onclick="setAction('exampleform', 'sende');" styleClass="button">
        sende2           
      </html:submit>

      Hätte ich diese Anforderung nicht würde ich also schreiben:
      HTML Code:
      <html:form action="Example.do?action=reload">

      Aufgrund deines Hinweises habe ich mal ausprobiert, das 'value' weg zu lassen und dafür den Aufruf setAction so zu schreiben:
      HTML Code:
      <html:submit onclick="setAction('exampleform', 'Example.do?action=reload');" styleClass="button">
      Das funktioniert im FF auch...
      Aber im IE wieder nicht


      Verstehe das nicht so ganz. Grundsätzlich funktiert diese Technik ja schließlich. aber...

      Comment


      • #4
        Hallo,

        warum nimmst du dann nicht ein hidden-Feld?
        HTML Code:
        <form id="exampleform" action="Example.do">
        <input type="hidden" name="action" value="" />
        ...
        <input type="submit" onclick="this.form.elements.action.value='reload';" styleClass="button" value ="sende1" />
        ...
        <input type="submit" onclick="this.form.elements.action.value='sende';" styleClass="button" value ="sende2" />
        </form>
        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Das definiere ich...
          <html:hidden property="action" value=""/>

          Und setze es dann mit JS.

          Oder hab ich dich jetzt falsch verstanden.

          Comment


          • #6
            Wenn das die richtige Definition ist, dann Ja!
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Sorry, ich hab das HTML zu schnell überflogen....

              Wenn der Aufruf lautet:
              this.form.elements.action.value='reload';

              dann geht es!


              Boah, du bist echt mein persönlicher Held für heute.
              Das Problem hat mich wahnsinnig gemacht.

              Danke!!!


              BTW: Mal so ne Frage am Rande. Ist diese Art des Aufrufs, also in dem onclick, nun auch JS oder welceh Technologie ist dafür verantwortlich?

              Comment


              • #8
                Originally posted by Mephisto84 View Post
                ...BTW: Mal so ne Frage am Rande. Ist diese Art des Aufrufs, also in dem onclick, nun auch JS oder welceh Technologie ist dafür verantwortlich?
                Das ist einfach JS!
                Direkt innerhalb eines Event-Handlers zeigt this auf das Element selbst. Jedes Input-Element speichert in form das umgebende Formular. Ein Formular speichert in der Eigenschaft elements alle eigenen Elemente...

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Danke für deine Erklärungen!

                  Hast du eine Idee wieso mein ursprünglicher Plan mim Firefox ging und mit dem IE nicht?

                  Comment


                  • #10
                    Hallo Mephisto84,

                    Nein, dein ursprünglicher Plan hätte auch im FF nicht funktioniert, zumindest nicht wie du es dir vorgestellt hast.
                    Ohne den endgültigen HTML-/JS-Code zu kennen, der dann tatsächlich beim Browser angekommen ist, ist es sowieso schwer eine Aussage zu treffen

                    Gruß Falk
                    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                    Comment

                    Working...
                    X