extjs验证,就是表单的name,我使用异步验证用户名重复了,但调用form.isValid()一直为true
我是在鼠标离开name的输入框后用ajax验证用户名重复了,但我调用form.isValid()却一直为true,并且name的输入框的错误验证边正确输入了,遇到这个问题...
我是在鼠标离开name的输入框后用ajax验证用户名重复了,但我调用form.isValid()却一直为true,并且name的输入框的错误验证边正确输入了,遇到这个问题,我有打算改用vtype,但这个会多次访问数据库,我不希望这个所以就没用vtype,之前也试过有则个的问题,后来又不知道什么原因又没事了,我就是想知道为什么会有如此诡异的问题呢?
展开
1个回答
展开全部
isValid方法是本地方法, 只检查form中包含的field的指定属性和vType, 如allowBlank设为false, 该字段为空则isValid方法返回false, 不满足vType也返回false. 其他的还有NumberField的allowDecimal, DateField值与设定的format不符, 看下API吧, 没有什么诡异的.
你的意思是要从服务器端验证有效性, 显然客户端方法是无法实现的. 要实现你的要求, 一般的做法是自己记录状态值. 因为异步调用的关系, 必须在验证发出前设状态为false, 在调用返回后, 再根据返回结果设置状态值.
另:如果form中有多个name相同的feild, 则form.getValues方法得到的对象中以数组表示, 如:{username: ['abc', 'bcd'], password: 'abc', ....}
你的意思是要从服务器端验证有效性, 显然客户端方法是无法实现的. 要实现你的要求, 一般的做法是自己记录状态值. 因为异步调用的关系, 必须在验证发出前设状态为false, 在调用返回后, 再根据返回结果设置状态值.
另:如果form中有多个name相同的feild, 则form.getValues方法得到的对象中以数组表示, 如:{username: ['abc', 'bcd'], password: 'abc', ....}
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询