Hallo, ich hoffe ihr könnt mir bei folgendem Problem helfen. Ich habe auf einer XSL-Seite ein Dropdown-Menü mit Bezeichnungen. Daneben ein Input-Field mit der ID der Bezeichnung. Wenn ich nun im DropDown eine andere Bezeichnung auswähle, soll der Wert im Input-Field entsprechend aktualisiert werden. Genauso kann ich im Input-Field einen Wert eintragen und das DropDown-Feld wird entsprechend aktualisiert. Dazu gibt es jeweils eine onChange-Methode. Leider funktioniert das so nicht. Vielleicht habt ihr eine Idee wo der Fehler liegt. Hier der entsprechende Auszug aus der XSL-Datei dann die JavaScript-Methoden:
<td>
<xsl:element name="select">
<xsl:attribute name="name">form_position<xsl:value-of select="@row"/>_BezeichnungLangSel</xsl:attribute>
<xsl:attribute name="class">check-selectbox</xsl:attribute>
<xsl:attribute name="onchange">getSelectedBezeichnungLang('form_position<xsl:value-of select="@row"/>_BezeichnungLang');</xsl:attribute>
<xsl:for-each select="bezeichnungBox/type">
<xsl:element name="option">
<xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:if test="@selected='1'">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="@name"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</td>
<td>
<xsl:element name="input">
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="name">form_position<xsl:value-of select="@row"/>_Bezeichnung</xsl:attribute>
<xsl:attribute name="size">10</xsl:attribute>
<xsl:attribute name="maxlength">10</xsl:attribute>
<xsl:attribute name="onchange">setSelectedBezeichnung('form_position<xsl:value-of select="@row"/>_Bezeichnung');</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="@Bezeichnung"/></xsl:attribute>
</xsl:element>
</td>
function getSelectedBezeichnungLang(selBox)
{
var box = eval("document.formInput." + selBox + "Sel");
var target = eval("document.formInput." + selBox);
if( box[box.selectedIndex].value == "?" )
{
target.value = "";
}
else
{
target.value = box[box.selectedIndex].value;
}
}
function setSelectedBezeichnung(selBox)
{
var box = eval("document.formInput." + selBox + "Sel");
var theinput= eval("document.formInput." + selBox);
var theEmptyValue = 0;
var found = false;
for (i=0; box.length>i; i++)
{
if (box[i].value == "?")
{
theEmptyValue = i;
}
if (Number(box[i].value) ==Number(theinput.value))
{
box[i].selected = true;
found = true;
}
else
{
box[i].selected = false;
}
}
if (found ==false)
{
box[theEmptyValue].selected = true;
}
}