Sencha Ext JS登录表单验证异常:用户名密码始终提示错误
解决ExtJS表单验证错误的问题
嘿,问题一眼就能看出来啦!你现在用getId('user')拿到的根本不是输入框里的内容——这个方法返回的是组件的DOM元素ID字符串,不是用户输入的实际值,这就是为什么每次验证都失败的原因😉
正确的获取字段值方式
在ExtJS里,要拿到输入框的内容,得先获取组件实例,再调用getValue()方法:
// 先通过itemId获取组件实例(假设你的字段配置里itemId是'user'和'pass') var usernameField = this.lookup('user'); var passwordField = this.lookup('pass'); // 再获取输入的实际值 var username = usernameField.getValue(); var password = passwordField.getValue(); if(username === "Peter" && password === "Bachmeier"){ Ext.Msg.alert("That is right"); }else{ Ext.Msg.alert("Wrong"); }
另一种更便捷的方式(如果是FormPanel的话)
如果你的表单是Ext.form.Panel的实例,还可以直接调用getForm().getValues()一次性获取所有字段的键值对,代码更简洁:
var formData = this.getForm().getValues(); if(formData.user === "Peter" && formData.pass === "Bachmeier"){ Ext.Msg.alert("That is right"); }else{ Ext.Msg.alert("Wrong"); }
小提醒
要确保你的字段配置里设置了正确的itemId(比如itemId: 'user'),lookup()方法是根据itemId查找组件的。如果之前用的是全局id属性,虽然也能通过Ext.getCmp('user')获取,但不推荐——全局id容易冲突,itemId是组件内唯一的,更安全。
内容的提问来源于stack exchange,提问作者PolizeiUwe
相关产品推荐
相关产品推荐

