我正在試驗XForms並嘗試動態加載JavaScript,但無法弄清楚。從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
與一個<input type="text">
元素幾個嵌套span
元素的事實,但input
元素沒有一個名稱或ID。
您,是因爲您使用'getElementById'設定輸入的'id',不僅名字。在你的例子中:''。 –
GuyT
2014-09-10 10:54:34
是的,我確實設置了輸入的id。但是在嘗試嘗試錯誤時,我也在嘗試使用'getElementByName'。我做了一個編輯。感謝您的評論。 – lapadets 2014-09-10 11:06:33
你究竟想要腳本做什麼?您當前的示例可以使用xf:alert完成。其他類似腳本的函數可以使用xf:bind – 2014-09-10 11:10:41