我正在尝试使用XForms并尝试动态加载javascript,但无法弄明白。
我提出了一个简单的例子 - 这只是一个输入字段和加载javascript的按钮:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events" >
<head>
<title>Hello World in XForms</title>
<xf:model>
<xf:instance xmlns="">
<data>
<firstName/>
</data>
</xf:instance>
</xf:model>
<script type="text/javascript">
var myFunction = function(){
var name = document.getElementById("firstName").value;
alert("Hello " + name + "!");
}
</script>
</head>
<body>
<xf:label>Please enter your first name: </xf:label>
<xf:input ref="firstName" id="firstName">
</xf:input>
<br />
<xf:trigger>
<xf:label>Click me!</xf:label>
<xf:action ev:event="DOMActivate">
<xf:load resource="javascript:myFunction()" />
</xf:action>
</xf:trigger>
</body>
</html>
所以在我的脚本中,我试图从输入框中获取值,然后显示带有连接字符串的警告框。目前,我得到“Hello undefined!”
您是否知道如何使用Javascript从firstName
xf:input
获取值?
我知道如何只使用XForms,但这是一种概念证明。
旁注 - 我正在使用XSLTForms,因此XForms在客户端上运行。
另一个提示可能是XSLTForms将xf:input
转换为具有span
元素的多个嵌套<input type="text">
元素,但input
元素没有名称或者身份证。
答案 0 :(得分:1)
使用XSLTForms,有不同的可能性......
如果您想访问相应HTML输入的值,我建议document.getElementById("firstName").xfElement.input.value
。
您还可以使用node属性来获取存储在绑定节点中的值。
不要犹豫,使用调试器浏览DOM,以找到如何从XSLTForms获取内容!
- 阿兰