Chris: Radio-Button hat angeblich keine Eigenschaften

Moin,
habe folgendes Problem mit meinem Javascript: Ich möchte einfach nur abfragen, welcher von zwei Radiobuttons angeklickt wurde. Allerdings scheitert das Vorhaben daran, dass die angeblich keine Eigenschaften haben...

Hier die Codes:

<form action="findex.php?id=admin&amp;aa=saveentry" name="newentry" method="post">
...
<input type="radio" name="finishaction" value="back" checked="checked" />zur&uuml;ck
<input type="radio" name="finishaction" value="new" />noch einen Termin eintragen<br />
...
</form>

if(document.newentry.finishaction[0].checked == "checked")
{
   document.getElementById("status").innerHTML = "Formular zur&uuml;cksetzen :)";
   document.newentry.reset();
}

bzw.

if(document.newentry.finishaction.value == "new")
{
   document.getElementById("status").innerHTML = "Formular zur&uuml;cksetzen :)";
   document.newentry.reset();
}

Funktionieren beide nicht - Konsole meldet "document.newentry.finishaction has no properties"
Der Code im If-Block ist vorerst fiktiv, da kommt natürlich noch was rein, aber darum gehts ja hier nicht...ich möchte einfach nur für beide Möglichkeiten - new wurde angeklickt, back wurde angeklickt - einen Teil Code ausführen lassen. Wär super, wenn mir jemand helfen könnte, woher der Fehler kommt.

Gruß,
Chris

  1. Hi,

    <input type="radio" name="finishaction" value="back" checked="checked" />zur&uuml;ck
    <input type="radio" name="finishaction" value="new" />noch einen Termin eintragen<br />

    if(document.newentry.finishaction[0].checked == "checked")

    AFAIK ist zwar der HTML-Attributwert "checked", in Javascript hat die Eigenschaft checked aber die Werte true oder false.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo,

      
    
    > if(document.newentry.finishaction.value == "new")  
    > { ... }  
    
    

    Funktionieren beide nicht - Konsole meldet "document.newentry.finishaction has no properties"

    die Fehlermeldung bezieht sich aber nur auf den 2. Block, denn "finishaction" ist ein Array

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Moin,

      die Fehlermeldung bezieht sich aber nur auf den 2. Block, denn "finishaction" ist ein Array

      hab ja beides einzeln ausprobiert, ging jeweils nicht.

      AFAIK ist zwar der HTML-Attributwert "checked", in Javascript hat die Eigenschaft checked aber die Werte true oder false.

      hab's mal ausprobiert, siehe hier:

      if(document.newentry.finishaction[0].checked == true)
      {
          //Blabla
      }
      else
      {
          document.newentry.reset();
      }

      Ergibt aber leider genau die gleiche Fehlermeldung. Trotzdem schonmal danke für die schnelle Hilfe, hört sich logisch an, klappt aber leider nicht...
      Gruß,
      Chris

      1. Ergibt aber leider genau die gleiche Fehlermeldung. Trotzdem schonmal danke für die schnelle Hilfe, hört sich logisch an, klappt aber leider nicht...

        Doch das klappt, es klappt nur nicht bei dir, Warum? Wissen wir nicht.
        Wann und wo rufst du die Funktion auf?

        Struppi.

        1. Doch das klappt, es klappt nur nicht bei dir, Warum? Wissen wir nicht.

          Ist leider öfter so bei mir...

          Wann und wo rufst du die Funktion auf?

          Beim Klick auf einen JavaScript-Link im Formular wird ein XMLHttpRequest an ein PHP-Script verschickt, um die Daten zu speichern, danach wird nach einer kurzen Verzögerung die Funktion aufgerufen die prüfen soll welcher Radiobutton angeklickt wurde.

          //Code aus der verarbeitenden Funktion des Requests
          document.getElementById("status").innerHTML = "Erfolgreich gespeichert!";
          window.setTimeout("finishAction();",2000);

          ...

          function finishAction()
          {
              document.getElementById("status").innerHTML = "";
              if(document.newentry.finishaction[0].checked == true)
              {
                  //Blabla
              }
              else
              {
                  document.newentry.reset();
              }
          }

          Funktioniert auch wunderbar bis zu dem Punkt, an dem die Abfrage des checked-Attributes kommt.

          1. Noch eine Ergänzung: Habe grad mal ausprobiert, die Radiobuttons einzeln per id anzusprechen, da funktioniert es dann auch...aber wieso nicht mit Index?

            1. Hallo,

              Noch eine Ergänzung: Habe grad mal ausprobiert, die Radiobuttons einzeln per id anzusprechen, da funktioniert es dann auch...aber wieso nicht mit Index?

              schau dir deine Strukur nochmal an: Du hast das form-Element schon geschlossen bevor die Radiobuttons definiert werden.

              Gruß plan_B

              --
                   *®*´¯`·.¸¸.·
          2. function finishAction()
            {
                document.getElementById("status").innerHTML = "";
                if(document.newentry.finishaction[0].checked == true)
                {
                    //Blabla
                }
                else
                {
                    document.newentry.reset();
                }
            }

            Funktioniert auch wunderbar bis zu dem Punkt, an dem die Abfrage des checked-Attributes kommt.

            Laß dir mal die Objekte die du verwendest einzeln ausgeben.
            alert(document.newentry)
            alert(document.newentry.finishaction)
            alert(document.newentry.finishaction[0])

            Dann weißt du schonmal wo das Problem hast.

            Struppi.

            1. alert(document.newentry.finishaction)

              Ergibt "undefined"

              alert(document.newentry.finishaction[0])

              Ergibt den Fehler "has no properties"...

              Dann weißt du schonmal wo das Problem hast.

              hm joa, aber leider nicht warum, sorry, viel anfangen kann ich damit nicht...das Formular gibts jedenfalls, da gibts auch ne korrekte Ausgabe...aber das Radiobutton-Array scheint nicht existent??

              1. alert(document.newentry.finishaction)
                Ergibt "undefined"

                Dann stimmt entweder was mit dem Objekt document.newentry nicht oder du hast keine Formularfelder mit dem Namen finishaction

                Dann weißt du schonmal wo das Problem hast.
                hm joa, aber leider nicht warum, sorry, viel anfangen kann ich damit nicht...das Formular gibts jedenfalls, da gibts auch ne korrekte Ausgabe...aber das Radiobutton-Array scheint nicht existent??

                Was gibt ergibt alert(document.newentry), bzw alert(document.newentry.tagName)?

                Struppi.

                1. Was gibt ergibt alert(document.newentry), bzw alert(document.newentry.tagName)?

                  object HTMLFormElement
                  tagName FORM

                  Die Namen sind definitiv richtig geschrieben, es gibt diese Radiobuttons...

                  1. Die Namen sind definitiv richtig geschrieben, es gibt diese Radiobuttons...

                    Das kann in dem Fall nicht sein, zeig mal ein Beispielseite wo dieser Fehler auftritt.

                    Struppi.

                    1. Das kann in dem Fall nicht sein, zeig mal ein Beispielseite wo dieser Fehler auftritt.

                      http://essen.apostolisch.de/findex.php?id=admin&aa=newEntry

                      Klick auf "Sonntagsgottesdienst" fügt die benötigten Daten ins Formular ein, Klick auf "Termin eintragen" führt die Anfrage an das PHP-Script und die anschließende JS-Funktion, die den Fehler produziert, aus. Normalerweise hängt da natürlich ein Login vor, ich hab den jetzt mal zusammen mit der Speicherfunktion deaktiviert, der JS-Code wird dadurch aber nicht verändert.

                      1. Grütze .. äh ... Grüße!

                        Das kann in dem Fall nicht sein, zeig mal ein Beispielseite wo dieser Fehler auftritt.

                        Hast du es mal mit einem anderen Schema versucht?


                        Kai

                        --
                        Der vertuschte Gefahrstoff: Dihydrogenmonoxid
                           +---------+
                           |   ___   |
                        ---+--|_R_|--+---- Widerstand ist zwecklos
                        1. Hast du es mal mit einem anderen Schema versucht?

                          Jo, hab ich, hat leider nicht geholfen...