【问题标题】:XSLT jquery classname and ASP.netXSLT jquery 类名和 ASP.net
【发布时间】:2013-06-22 16:32:35
【问题描述】:

所以我有一个 XSLT 表单,它从 XML 表单获取数据并将其显示给我。我想通过类名获取元素的值,但它一直返回未定义。这是 XSLTcode 的 sn-p

<!-- 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>

我尝试过的两种方式是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 和名称再次获取元素的值。

【问题讨论】:

  • 我不明白你想在这里展示什么。您尝试按类 personField 获取元素,但您的 xslt 示例不会生成此类。我在这里想念什么?
  • @hr_117 personField 是我想要的元素的名称。由于 XSLT 为我生成了类名。所以我所做的是使用事件来获取元素的名称和值以确认我使用了正确的名称,然后我尝试使用 jquery 和名称再次获取元素的值。

标签: jquery asp.net xslt classname


【解决方案1】:

您似乎正在尝试在任何输入框中的任何文本发生更改时获取该值。在 textBlur 函数中,您传递的是“事件”对象,因此 event.target 已经是您要查找的元素。

然而,如果你想通过类名来做,似乎你还没有在输入标签上设置类名。您可能应该将其更改为:

<input class="personField" type="{@ControlType}" name="{@Name}" onchange="textBlur(event)" />

此外,您的 jQuery 代码使用字段的名称属性的值(即 personField = e.target.name),而不是类名称的固定字符串名称。换句话说,我认为你想使用这个:

console.log($(".personField").val());

希望这会有所帮助!

【讨论】:

  • 哈哈哈天哪。我使用 name 并认为它是类名,因此以这种方式对待它。有史以来最愚蠢的大脑放屁。我必须使用jquery attribute selector Thnx。
猜你喜欢
  • 1970-01-01
  • 2010-10-10
  • 2021-02-27
  • 1970-01-01
  • 2011-09-09
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多