作者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
1F:推 lovelycateye:之前有3.6碰过,但是觉得某些东西包的不好就没继续用 12/04 00:42
2F:→ lovelycateye:现在要研究的话个人倾向GWT 12/04 00:43
3F:→ lovelycateye:虽然国货UI其实也不错,不过我还是比较看好GWT 12/04 00:46
4F:→ TonyQ:不管就产品或者就功能面来看,zk跟gwt想解决的问题不一样。 12/04 01:21
5F:→ TonyQ:不过是说技术性的东西本来就是各有所好,有兴趣的话可以讨论 12/04 01:24
6F:推 sometimes4:目前开发中....使用5.0.5版 12/04 01:24
7F:→ TonyQ:哦,难得,zk的东西蛮多的,有什麽问题可以一起讨论。:) 12/04 01:28
8F:→ lovelycateye:其实前阵子曾经想过要再看zk 5.0 但是发现变太多XD 12/04 07:55
9F:→ lovelycateye:有机会的话还满想找东尼前辈讨教一下 12/04 08:01
10F:→ TonyQ:zk 5.0 我觉得比 zk.3.6.4来讲是革命性的进步。 12/04 14:00
11F:→ TonyQ:传输亮、记忆体、效率上都比较好。 12/04 14:45
12F:→ TonyQ: *量 12/04 15:32
13F:推 luoqr:期待T大的zk新得分享 :P 12/05 01:04