1

我正在试验 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>

所以在我的脚本中,我试图从输入框中获取值,然后显示一个带有连接字符串的警报框。目前,我得到“你好未定义!”

你知道如何从firstName xf:inputJavascript 中获取价值吗?我只知道如何使用 XForms 来完成,但这只是一种概念证明。

附带说明 - 我正在使用 XSLTForms,因此 XForms 在客户端上运行。

另一个提示可能是 XSLTForms 将一个元素转换xf:input为多个嵌套元素,但该元素没有名称或 ID。span<input type="text">input

4

1 回答 1

1

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

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

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

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

——阿兰

于 2014-09-10T11:44:19.520 回答