Radio-Button hat angeblich keine Eigenschaften
Chris
- javascript
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&aa=saveentry" name="newentry" method="post">
...
<input type="radio" name="finishaction" value="back" checked="checked" />zurü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ücksetzen :)";
document.newentry.reset();
}
bzw.
if(document.newentry.finishaction.value == "new")
{
document.getElementById("status").innerHTML = "Formular zurü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
Hi,
<input type="radio" name="finishaction" value="back" checked="checked" />zurü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
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
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
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.
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.
Noch eine Ergänzung: Habe grad mal ausprobiert, die Radiobuttons einzeln per id anzusprechen, da funktioniert es dann auch...aber wieso nicht mit Index?
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
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.
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??
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.
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...
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.
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.
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?
Cü
Kai
Hast du es mal mit einem anderen Schema versucht?
Jo, hab ich, hat leider nicht geholfen...