我正在使用zk输入约束验证。单击“保存”按钮时,仍会调用doSave
,但不应该调用它。
我想在触发时执行,必须停止保存操作。
另一个问题是,zk允许Intbox
中的%。
这是我尝试过的。
validation.zul
<zk>
<window width="100%" height="100%"
apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.test.Validation')">
<toolbar id="listToolbarProcess" sclass="vista" height="20px"
align="start">
<toolbarbutton label="Save" onClick="@command('doSave')" ></toolbarbutton>
</toolbar>
<vlayout sclass="vertical-scroll" vflex="1">
<intbox id="priority" value="@bind(vm.value)" maxlength="3"
constraint="no empty" ></intbox>
<datebox value="@bind(vm.date)"></datebox>
</vlayout>
</window>
Validation.java
package com.test;
import java.sql.Timestamp;
import org.zkoss.bind.annotation.AfterCompose;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ContextParam;
import org.zkoss.bind.annotation.ContextType;
import org.zkoss.zk.ui.Component;
public class Validation {
/**
* @author Himanshu
*/
Integer value;
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
Timestamp date;
public Timestamp getDate() {
return date;
}
public void setDate(Timestamp date) {
this.date = date;
}
@AfterCompose
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {
}
@Command
public void doSave() {
System.out.println(" value =" + value);
System.out.println(" Date Value =" + date);
}
}
由于 人士Himanshu
答案 0 :(得分:1)
请阅读zk doc的this部分内容。它解释了如何避免
如果验证失败,则调用数据绑定方法。
如果您希望输入(不)接受%
,请使用textbox with regex
如果您想屏蔽输入,look here。