锁定老帖子 主题:T4.1.2局部刷新、校验代理与表单提交
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-23
我在实现这样一个功能的时候,出现了一些问题。 功能:在输入框失去焦点的时候,触发一个事件,进行对输入框值的验证,返回验证结果,显示在一个Insert中,局部刷新Insert组件,并将错误信息添加到校验代理对象中(ValidationDelegate)。 详细代码如下: Home.html: xml 代码
Home.page xml 代码
Home.java: java 代码
遇到的几个问题: 1、若在page页中的<binding value="validators:required" name="validators"></binding>中加入email验证,即将Home.page中的: xml 代码
替换为: xml 代码
<binding value="validators:required,email" name="validators"></binding>
,则无法触发checkEmail()事件。难道这两者之间存在对立的关系? 2、在输入格式正确,触发checkEmail()事件后,也会触发表单提交事件,即onSubmit()监听方法也会被触发,而且并没有调用校验对象验证任何信息!这样的话,若存在多个需要验证的字段,那么其他字段的验证都会被忽略(实践过)!本来以为是我校验代理配置有问题,于是在workbench的Field页面类中加了一段代码: java 代码
结果运行后发现它也是没通过任何验证直接提交表单! 3、在输入格式验证没通过,触发checkEmail()事件显示错误信息后,点击提交按钮,仍然会成功提交表单!相当于delegate.setFormComponent((IFormComponent)getComponent("email")); 4、checkEmail()代码中倒数第二句:getBuilder().updateComponent("emailInfo");也没起到作用!例如:用户第一次输入有误,在看过错误提示信息后,重新输入正确了!那么,就要清除错误信息了!可是,运行结果却并没有刷新出来,不知道是为什么...
碰到的问题如上,由于理解得不是很到位,一些状况可能并没有描述得很清楚,望各位见谅了!谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-08-05
public void onSubmit(){ // if(getReflush()) // return; // ValidationDelegate delegate = (ValidationDelegate)this.getBeans().getBean("delegate"); // if(delegate.getHasErrors()) // return; System.out.println("**********表单提交成功!**********"); } 让checkEmail方法返回一个状态,然后在onSubmit方法中根据这个状态,进行判断 |
|
返回顶楼 | |
浏览 3751 次