[zk] 在zk5 註冊 Component 的 client side 事件
這個其實是回應這篇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
推
12/04 00:42, , 1F
12/04 00:42, 1F
→
12/04 00:43, , 2F
12/04 00:43, 2F
→
12/04 00:46, , 3F
12/04 00:46, 3F
→
12/04 01:21, , 4F
12/04 01:21, 4F
→
12/04 01:24, , 5F
12/04 01:24, 5F
推
12/04 01:24, , 6F
12/04 01:24, 6F
→
12/04 01:28, , 7F
12/04 01:28, 7F
→
12/04 07:55, , 8F
12/04 07:55, 8F
→
12/04 08:01, , 9F
12/04 08:01, 9F
→
12/04 14:00, , 10F
12/04 14:00, 10F
→
12/04 14:45, , 11F
12/04 14:45, 11F
→
12/04 15:32, , 12F
12/04 15:32, 12F
推
12/05 01:04, , 13F
12/05 01:04, 13F