从XForms操作调用javascript

时间:2014-09-10 10:52:15

标签: javascript xforms xsltforms

我正在尝试使用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元素没有名称或者身份证。

1 个答案:

答案 0 :(得分:1)

使用XSLTForms,有不同的可能性......

如果您想访问相应HTML输入的值,我建议document.getElementById("firstName").xfElement.input.value

您还可以使用node属性来获取存储在绑定节点中的值。

不要犹豫,使用调试器浏览DOM,以找到如何从XSLTForms获取内容!

- 阿兰