游乐游手机版
首页/前端开发/文章详情

ExtJS4 Form中本地hiddenfield使用教程

时间:2026-06-11 07:06
在ExtJS4中,隐藏字段(hiddenfield)通过xtype: hiddenfield 定义,不显示界面但提交时自动携带name和value。表单默认配置对其无效。提交时可通过params追加自定义参数,使用up方法查找父级表单并调用submit()。隐藏字段常用于保存无需用户干预的数据。

在利用 Ext JS 4 进行实际开发时,表单(Form)组件的使用方式非常灵活,特别是一些无需用户直接输入、却需要在提交时自动携带数据的隐藏字段(hiddenfield)。本文将通过一个本地示例,详细拆解其实现细节——代码虽短,但背后的逻辑值得深入理解。

先来看一张效果图,便于对照理解:

Extjs4中Form的使用之本地hiddenfield

下方代码展示了如何在页面中创建一个包含隐藏字段的表单。注意观察其结构:一个常规的文本输入框(name 字段),搭配一个隐藏字段(age 字段),最后通过提交按钮将数据发送出去。

复制代码 代码如下:


Ext.onReady(function(){
Ext.QuickTips.init();
Ext.create("Ext.form.Panel",{
title:'本地hiddenfield实例',
renderTo:'formDemo',
bodyPadding:'5 5 5 5',
height:100,
width:270,
frame:true,
defaults:{
labelSeparator :": ",
labelWidth : 70,
width : 200,
allowBlank: false,
msgTarget : 'side',
labelAlign:'left'
},
items:[{
xtype:'textfield',
name:'name',
fieldLabel:'name',
value:'USPCAT.COM'
},{
xtype:'hiddenfield',
name:'age',
value:'1'
}],
buttons:[{
text:'提交',
handler:function(){
this.up("form").getForm().submit({//this指当前组件(按钮),up是上一个组件中找(form)
params:{
info:'age是隐藏字段'
}
});
}
}]
});
})

几个关键点值得重点说明:

  • 隐藏字段的定义方式:xtype 设置为 'hiddenfield',该组件在界面上不会渲染任何输入框,但会作为表单字段存在,提交时自动携带其 name 和 value 属性。
  • 表单的默认配置:在 defaults 中设置了 labelWidth、allowBlank 等参数,这意味着所有子组件都会继承这些配置——不过隐藏字段不受 label 相关属性影响,它没有标签且不参与空值校验。
  • 提交时附加额外参数:在按钮的 handler 中,通过 params 传入了一个 info 字段,用于演示“提交时追加自定义参数”的能力,实际业务中可携带更多辅助数据。
  • up 方法的使用技巧:this.up("form") 表示从当前按钮向上查找名为 "form" 的父组件,此处实际找到的是 Ext.form.Panel 本身,随后调用 getForm().submit() 执行提交。这种写法在嵌套组件结构中非常常见且实用。

这个示例虽然规模较小,但已覆盖了 hiddenfield 的基本用法以及表单提交的典型模式。在实际项目中,隐藏字段常用于保存 ID、状态信息、时间戳等无需用户干预的数据,既方便后端处理,又能保持前端界面的简洁美观。如果你在开发中遇到类似需求,直接参考这段代码即可快速上手。

来源:https://www.jb51.net/article/43773.htm
上一篇ExJS拖拽效果实现示例 下一篇解决ExtJS与jQuery $符号冲突的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
HTML文档版权声明结构与基础脚手架代码质量解析
前端开发 · 2026-07-07

HTML文档版权声明结构与基础脚手架代码质量解析

版权声明需用语义化``标签,©符号使用`©`实体;年份通过服务端、构建或JS分层兜底;`rel= "license "`仅指向真实许可证文件才有效。

基于HTML模板的组件化全栈交互方案
前端开发 · 2026-07-07

基于HTML模板的组件化全栈交互方案

纯HTML模板仅作静态结构,全栈交互需后端注入数据、前端JS激活模板及用户事件触发双向链路。``标签惰性,不执行脚本或加载资源,需通过克隆填充数据并手动绑定事件实现交互,父子传值依赖JS对象与自定义事件。

Bootstrap修改Badge徽章边框为圆点样式的方法
前端开发 · 2026-07-07

Bootstrap修改Badge徽章边框为圆点样式的方法

将BootstrapBadge改为圆点:自定义类设置等宽高、border-radius:50%、padding:0、font-size:0;Bootstrap5 2+需加display:inline-block;注意垂直对齐,避免min-width干扰,背景色用background-color更可控。

Bootstrap响应式多栏Footer社交图标排版实现
前端开发 · 2026-07-07

Bootstrap响应式多栏Footer社交图标排版实现

使用Bootstrap5的grid系统实现响应式多栏Footer,按断点设置列宽;以FontAwesome处理社交图标,避免使用img;利用list-unstyled组织链接列表;借助flex-column容器配合mt-auto使版权行自动贴底,避免fixed-bottom固定定位的弊端。

如何用Shadow DOM隔离组件内外事件分发
前端开发 · 2026-07-07

如何用Shadow DOM隔离组件内外事件分发

ShadowDOM内部事件默认不穿透影子边界,需显式设置composed:true才能被外部监听。此时event target指向宿主元素,真实触发源需通过event composedPath()[0]获取。原生事件手动派发时也必须声明composed:true。应避免在宿主上依赖event target做逻辑分支,建议在shadowroot内绑定事件或使用