EXTJS防止表单中回车触发提交

版本

7.0 modern toolkit

现象

在formpanel下的字段中使用回车时会自动触发form标签提交,导致跳转

源码

  • Ext.form.Panel
getTemplate: function() {
    var template = this.callParent();

    // 为实现标准的表单提交,加入了一个隐藏的input标签,类型为submit
    // 浏览器检查到此form字段回车会自动触发submit对象的click事件提交
    template.push({
        tag: 'input',
        type: 'submit',
        cls: Ext.baseCSSPrefix + 'hidden-submit'
    });

    return template;
},
initialize: function() {
  this.callParent();
  	// 此处对form元素增加监听submit事件
  	// 但是实际设置formpanel.standardSubmit=true, 表单字段回车并不会触发此事件,而是通过onFieldAction触发提交
    this.element.on('submit', 'onSubmit', this);
},

生成的html为
在这里插入图片描述
浏览器会自动响应表单字段回车事件并触发表单提交。

解决

Ext.define('common.overrides.Ext.form.Panel', {
    override: 'Ext.form.Panel',
    getTemplate: function() {
        var template = this.callParent();
        // 删除submit对象
        template.pop();
        return template;
    }
}

posted on   路过君  阅读(77)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示