代码之家  ›  专栏  ›  技术社区  ›  lapadets

从XForms操作调用javascript

  •  1
  • lapadets  · 技术社区  · 10 年前

    我正在尝试使用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:input 使用Javascript? 我只知道如何使用XForms,但这是一种概念证明。

    另一方面,我使用的是XSLTForms,因此XForms在客户端上运行。

    另一个提示可能是XSLTForms将 xf:输入 分成几个嵌套 span 元素 <input type="text"> 元素,但是 input 元素没有名称或id。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Alain Couthures    10 年前

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

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

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

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

    --阿兰