You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:37:39