XMLフォームからデータを取得して表示するXSLTフォームがあります。クラス名を介して要素の値を取得したいのですが、未定義を返し続けます。XSLT コードのスニペットを次に示します。
<!-- generic input template -->
<xsl:template match="DataField" priority="0">
<td colspan="{DisplayOptions/@ColSpan}" location="{DisplayOptions/@Column}">
<xsl:value-of select="FieldOptions/@DisplayName"/>
<br/>
<input type="{@ControlType}" name="{@Name}" onchange="textBlur(event)" />
<xsl:apply-templates select="SubDataFields"/>
</td>
</xsl:template>
私が試した2つの方法は、jqueryとドキュメントの使用です
function textBlur(e) {
//this gives me the value and works
var personInfo = e.target.value;
var personField = e.target.name;
//these two return undefined
var elements = document.getElementsByClassName("personField");
console.log($(elements).val());
console.log($("."+personField).val());
}
ここで何が間違っていますか?personField は、必要な要素の名前です。XSLT がクラス名を生成するためです。そのため、イベントを使用して要素の名前と値を取得し、正しい名前を使用して値を取得していることを確認し、jquery と名前を使用して要素の値を再度取得しようとしました。