Tobias S.: selectfeld innerhalb bestimmter Tabelle ansprechen

Beitrag lesen

Hi waste!

Ich habe deinem Beispielcode ein paar Namen verpasst:

<form name='formular'>

<table>
<tr>
  <td>

<select>  so lassen wie es ist
    <option>
    <option>
   <select>

</td>
</tr>
</table>

<table>
<tr>
  <td>

<select name='select_in_zweiter_tabelle'>  ÄNDERN!!!
    <option>
    <option>
   <select>

<select name='select_in_zweiter_tabelle'>  ÄNDERN!!!
    <option>
    <option>
   <select>

</td>
</tr>
</table>

<table>
<tr>
  <td>

<select>  so lassen wie es ist
    <option>
    <option>
   <select>

</td>
</tr>
</table>

</form>

Einach gesagt, kannst du mit document.formular.select_in_zweiter_tabelle.value den Wert vergeben, den du möchtest. Du sprichst damit alle <select>s innerhalb der zweiten Tabelle an. Natürlich müssen die Elemente entsprechende Namen tragen. Da das Attribut "name" allerdings keinen dokumentweit eindeutigen Wert haben muss, kannst du mehreren <select>s den gleichen Namen geben.

Eine andere Möglichkeit wäre die Adressierung mit DOM:
document.getElementsByName("form")[0].getElementsByName("table")[1].getElementsByName("select")[n].value = "wert" würde dem n-ten <select> in der zweiten Tabelle ([0],[1] >> Zählweise beginnt bei 0) im ersten Formular den Wert "wert" zuweisen. Du müsstest in diesem Fall allerdings mit JavaScript durch alle <select>s iterieren (n = 0..x).

Zur Veranschaulichung eines kleines Test-Dokument:

<html>
<head></head>
<body>
 <span>
  <form>
   <input type='text' value='hallo1'>
   <input type='text' value='hallo2'>
  </form>
  <form>
   <input type='text' value='hallo3'>
   <input type='text' value='hallo4'>
  </form>
 </span>
 <span>
  <form>
   <input type='text' value='hallo5'>
   <input type='text' value='hallo6'>
  </form>
  <form>
   <input type='text' value='hallo7'>
   <input type='text' value='hallo8'>
  </form>
 </span>

<script language='javascript'>
 <!--
  alert(document.getElementsByTagName("span")[1].getElementsByTagName("form")[0].getElementsByTagName("input")[1].value);
 -->
 </script>
</body>
</html>

Die Ausgabe des Skripts per alert() wird "hallo6" lauten, da es sich um den Wert des zweiten <input>s im ersten <form> des zweiten <span>s handelt.

Viele Grüße,
Tobias