Formular auslesen, Nodeproblem
nimble
- javascript
2 Edgar Ehritt0 nimble
0 Struppi0 MudGuard
Hi
Irgendwie bring ichs heute nicht hin...
<div id=2>
<select name="state" size="1">
<option selected value="">offen</option>
<option value="0">i.O.</option>
<option value="1">erledigt</option>
<option value="2">fehler</option>
<option value="3">n/a</option>
</select>
<input type="text" name="note" class="input" onblur="setAnswer(this.parentNode)">
<input type="hidden" name="question" value="6">
</div>
Das Passende JavaScript:
function setAnswer(theDiv)
{
var state = theDiv.childNodes[0].value;
var note = theDiv.childNodes[1].value;
alert(note);
var ques = theDiv.childNodes[2].value;
alert(ques);
}
Aber irgendwie lande ich am falschen ort, zumindest ist note immer "undefinied" und ques ganz leer :-(
Ich hoffe dass jemand den denkfehler an diesem konstrukt sieht.
THX
Hallo Nimble,
<div id=2>
<select name="state" size="1">
<option selected value="">offen</option>
<option value="0">i.O.</option>
<option value="1">erledigt</option>
<option value="2">fehler</option>
<option value="3">n/a</option>
</select>
<input type="text" name="note" class="input" onblur="setAnswer(this.parentNode)">
<input type="hidden" name="question" value="6">
</div>
DOM-Baum Child-Nr.
\-------------------------------------
<div>
|
|-#TextNode 0
|
|-<select> 1
|
|-#TextNode 2
|
|-<input> 3 <----
|
|-#TextNode 4
|
|-<input> 5
|
`-#TextNode 6
Aber mache es Dir doch einfach:
~~~javascript
function setAnswer(theDiv){
var inp = theDiv.getElementsByTagName('input');
var sel = theDiv.getElementsByTagName('select');
alert(sel.item(0).value);
alert(inp.item(0).value);
}
Gruß aus Berlin!
eddi
Hi
Super, wie schnell hier immer ausführliche und hilfreiche Antworten komman. Danke!
THX
Aber irgendwie lande ich am falschen ort, zumindest ist note immer "undefinied" und ques ganz leer :-(
Warum willst du hier mit childNodes arbeiten?
Wenn es irgendeinen Grund gibt, dann musst du wenigstens prüfen, ob das Objekt das ist, was du erwartest. Zumal die Browser diese Liste unterschiedlich aufbauen.
Ich hoffe dass jemand den denkfehler an diesem konstrukt sieht.
Ich würde hier die ganz normalen Formularobjekten benutzen.
Struppi.
Hi,
<div id=2>
ergänzend zum bereits gesagten: dies ist keine gültige id - eine id kann nicht mit einer Ziffer beginnen.
cu,
Andreas