作者TonyQ (沉默是金。)
看板java
標題[zk] 如何在zk註冊 Component 的 client side 事件。
時間Fri Dec 3 20:53:42 2010
這個其實是回應這篇forum 時,想到的範例。
http://www.zkoss.org/forum/listComment/14637
過去在 jsp 的世界中,我們常常會用 javascript 在送出表單前作 form 的驗證,
但在 zk 的世界裡雖然已經有提供輸入元件(InputElement,如textbox、datebox)
透過 constraint 來驗證的方式。
@see
http://0rz.tw/uJ3xJ about constraint
如果你過去習慣 jsp 這樣的作法,
你現在仍然可以透過註冊 Widget event 在javascript端去進行一些處理,
來決定這個事件是不是要繼續送回伺服器端進行後續的處理。
當然,能夠註冊client 事件也有助於你在zk世界中跟其他第三方元件的溝通,
比方說當顯示一張圖片時進行一些jQuery 處理行為的加載之類的。
具體程式碼
<vbox
xmlns:w="client">
<textbox width="350px" id="hi"
value="if you don't change me i will not send to server">
<button label="Test" orient="vertical" width="125px">
<attribute
w:name="onClick">
//Client Side
//validation here
//simple validation to prevent default word
if(
jq("$hi").val()=="if you don't change me i will not send to server" ){
alert("client event stoped!");
event.stop();
}
</attribute>
<attribute
name="onClick">
//Server Side
alert("clicked");
</attribute>
</button>
</textbox>
</vbox>
[/code]
這個範例演示一個情形,當我一定要修改輸入框的字才繼續進行伺服器端的處理時,
我可以註冊該按鈕的 client onClick 事件(注意w: 這個 xml namespace ),
並在我不想要它送給 server 時將事件停下。(event.stop() )
具體操作情形跟範例可以看這影片。
http://0rz.tw/wZWJY
--
話說回來,是說 ptt 這裡好像 zk developer 不多......
--
網頁上拉近距離的幫手 實現 GMail豐富應用的功臣
數也數不清的友善使用者體驗 這就是javascript
歡迎同好到 AJAX 板一同討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.44.37
推 lovelycateye:之前有3.6碰過,但是覺得某些東西包的不好就沒繼續用 12/04 00:42
→ lovelycateye:現在要研究的話個人傾向GWT 12/04 00:43
→ lovelycateye:雖然國貨UI其實也不錯,不過我還是比較看好GWT 12/04 00:46
→ TonyQ:不管就產品或者就功能面來看,zk跟gwt想解決的問題不一樣。 12/04 01:21
→ TonyQ:不過是說技術性的東西本來就是各有所好,有興趣的話可以討論 12/04 01:24
推 sometimes4:目前開發中....使用5.0.5版 12/04 01:24
→ TonyQ:哦,難得,zk的東西蠻多的,有什麼問題可以一起討論。:) 12/04 01:28
→ lovelycateye:其實前陣子曾經想過要再看zk 5.0 但是發現變太多XD 12/04 07:55
→ lovelycateye:有機會的話還滿想找東尼前輩討教一下 12/04 08:01
→ TonyQ:zk 5.0 我覺得比 zk.3.6.4來講是革命性的進步。 12/04 14:00
→ TonyQ:傳輸亮、記憶體、效率上都比較好。 12/04 14:45
→ TonyQ: *量 12/04 15:32
推 luoqr:期待T大的zk新得分享 :P 12/05 01:04