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>

私のスクリプトでは、入力ボックスから値を取得してから、連結された文字列で警告ボックスを表示しようとしています。現在、「Hello undefined!」と表示されます。

firstName xf:inputJavascriptから値を取得する方法を知っていますか? 私は XForms でのみそれを行う方法を知っていますが、これは一種の概念実証です。

余談ですが、私は XSLTForms を使用しているため、XForms はクライアント上で実行されます。

もう 1 つのヒントは、XSLTForms が要素を含むxf:inputいくつかのネストされたspan要素に変換するという事実にあるかもしれませんが<input type="text">、そのinput要素には名前または ID がありません。

4

1 に答える 1

1

XSLTForms にはさまざまな可能性があります...

対応する HTML 入力の値にアクセスしたい場合は、 をお勧めしdocument.getElementById("firstName").xfElement.input.valueます。

node プロパティを使用して、バインドされたノードに格納されている値を取得することもできます。

XSLTForms から何かを取得する方法を見つけるために、デバッガーで DOM をブラウズすることを躊躇しないでください!

――アラン

于 2014-09-10T11:44:19.520 に答える