Stefan: Problem mit XSL/XML und JavaScript Methode

Beitrag lesen

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;
	}
}