在firefox中,如果校验失败是不会执行提交操作的;但是在IE中则会提交,需要用form.isValid()来判断。
在提交前调用判断是否数据校验OK:
//数据校验
if (!form.getForm().isValid()){
Ext.Msg.alert('信息','有些必输项未输入!');
return;
}
要想提示,需要把Ext.QuickTips.init();打开,否则看到的就是红色的波浪线,没文字提示。
20.1输入不能为空
继承自Ext.form.TextField的控件都支持非空校验,它们是:TextField、NumberField、TextArea、TriggerField、Combobox、DateField、TimerField。
举例:
var textfield = new Ext.form.TextField({
fieldLabel:"Username",
allowBlank:false,
emptyText:"请输入数据",
blankText:"此项为必输项!",
name:"username",
minLength:6,
maxLength:16
});
页面加载后输入框中提示“请输入数据”,如果没有输入数据,则在提交时或焦点离开输入框时提示“此项为必输项!”。
20.2限制输入长度
代码:
var textfield = new Ext.form.TextField({
fieldLabel:"Username",
allowBlank:false,
emptyText:"请输入数据",
blankText:"此项为必输项!",
name:"username",
minLength:6,
minLengthText:"最少输入6位!",
maxLengthText:"最多输入16位!",
maxLength:16
});
20.3借助Vtype验证
Ext提供了一套默认的验证方案,如果使用它们就只需要记住vtype即可,就不需要记住一长串的正则表达式了,然后在控件中配置即可。
例如:
var email = new Ext.form.TextField({
fieldLabel:"Email",
allowBlank:false,
emptyText:"请输入数据",
name:"email",
minLength:6,
maxLength:16,
vtype:"email"
});
这些信息定义在Ext.form.Vtype中,默认支持4种vtype:
1. email:电子邮件格式
2.url:网址
3.alpha:英文字母
4.alphanum:英文字母+数字
如果要扩展自己的vtype,可以这样:
Ext.apply(Ext.form.VTypes, {
IPAddress:function(v) {
return/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(v);
},
IPAddressText: 'Must be a numeric IP address'
});
这样就扩展了一种vtype:IPAddress。
这样使用就可以了:
var ip = new Ext.form.TextField({
fieldLabel:"Ip",
allowBlank:false,
emptyText:"请输入数据",
name:"ip",
minLength:6,
maxLength:16,
vtype:"IPAddress"
});
20.4自定义校验
其实上面扩展vtype也算是自定义校验规则。自定义校验就是允许使用regex来验证。
例如:
var hanzi = new Ext.form.TextField({
fieldLabel:"汉字",
allowBlank:false,
emptyText:"请输入数据",
name:"hanzi",
minLength:6,
maxLength:16,
regex:/^[\u4E00-\u9FA5]+$/,
regexText:"只能输入汉字!"
});
20.5后台校验
在后台返回的消息中,只要返回错误消息errors,并把它放到正确的地方,Ext会自动将错误信息显示到相应的位置。
示例:
// 后台校验
Ext.onReady(function() {
Ext.QuickTips.init();
var serverText = new Ext.form.TextField({
fieldLabel:"后台校验",
name:"houtai"
});
var form = new Ext.form.FormPanel({
title:"Ext默认表单提交方式",
width:800,
labelAlign:"right",
labelWidth:100,
url:'/myExt2.3/AjaxSubmitForm.do',
renderTo:document.body,
items:[
serverText
],
buttons:[
{
text:"提交",
handler:function() {
//数据校验
if (!form.getForm().isValid()) {
Ext.Msg.alert('信息','有些必输项未输入!');
return;
}
form.getForm().submit({
success: function(form,action) {
Ext.Msg.alert('提示',action.result.msg);
},
failure: function(form,action) {
//Ext.Msg.alert('提示','提交失败!');
if (action.failureType == Ext.form.Action.SERVER_INVALID) {// 业务错误
//Ext.Msg.alert('提示','提交失败!');
}
else { // 网络问题
Ext.Msg.alert('提示','网络连接故障!');
}
}
});
}
}
]
});
});
Servlet:
Stringhoutai = request.getParameter("houtai");
if(houtai.replace("","").length() == 0) {
response.getWriter().write("{success:false,errors:{houtai:'后台提示不能为空!'}}");
}
else {
response.getWriter().write("{success:true,msg:'表单提交成功!'}");
}
A. 不输入任何内容,单击提交按钮
这里的提示信息就是后台返回的提示信息,在Servlet返回的errors中定义的。
B. 输入内容,单击提交按钮、
相关推荐
### ext_表单提交_数据校验:深入解析与实践 #### 一、文本框输入控件(Ext.form.TextField) 在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。...
- **数据结构保留:** 原有的Ext3数据结构保持不变,新数据则按照Ext4的数据结构进行存储。 **2. 更大的文件系统和文件** - **支持容量:** - 文件系统:最大支持1EB(1,048,576TB) - 单个文件:最大支持16TB -...
EXT表单验证是EXT JS框架中的一个重要特性,用于在用户输入数据时确保数据的正确性和完整性。EXT JS是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计。它提供了丰富的组件库,包括表格、表单、菜单等,...
本篇将详细探讨如何利用`Ext`前端框架与`JSP`服务器端页面来实现数据的提交。 `Ext`是一个强大的JavaScript库,主要用于构建富客户端应用。它提供了丰富的组件库,包括表格、表单、菜单等,以及一套完整的MVC...
EXT是Sencha公司开发的一款基于JavaScript的富客户端应用框架,它提供了一套完整的组件化UI构建工具,其中EXT表单(FormPanel)是用于创建复杂数据输入和验证的重要部分。在EXT表单中,TextField是最常见的输入控件...
2. **更好的数据安全性**:EXT5可能会引入更高级别的错误检测和修复机制,例如使用更强的校验和来保护数据免受损坏。 3. **事务处理**:EXT4引入了日志记录(journaling)来提高文件系统的稳定性,但EXT5可能会...
FormPanel可以嵌入各种Field组件,如TextField、ComboBox、DatePicker等,配合Validator进行数据校验,确保数据的完整性和准确性。 此外,TreePanel实例则展示了EXT.NET在构建层次结构数据展示方面的强大能力。...
例如,需要对用户输入的数据进行校验,防止SQL注入等攻击;使用HTTPS协议确保数据传输的安全性;对密码进行加密存储,以保护用户信息不被泄露。 总的来说,EXT是一个强大的前端开发框架,特别适合构建复杂的、互动...
### EXT学习心得与关键知识点详解 #### 布局Center的重要性 在EXT框架中,`layout: 'center'`是一个非常关键的配置属性...无论是布局管理、数据网格操作、下拉框事件还是表单验证,EXT都提供了灵活而强大的解决方案。
6. **错误检测和修复**:EXT3包含了多种错误检测机制,如CRC校验,用于检测并修复数据错误。 7. **软更新和同步模式**:EXT3提供了两种日志模式,一种是软更新模式,它在大多数情况下提供较快的性能,但在断电后...
Action可以使用Struts2的拦截器进行数据校验、事务管理等操作。 5. **EXT Direct** EXT Direct是EXT和服务器之间通信的一种高效方式,它允许直接调用服务器端的方法,使得前后端的交互更为简洁。在Struts2中,需要...
Ext.create('Ext.form.field.Text', { fieldLabel: 'Password', name: 'password', listeners: { change: function(field, newValue) { if (!validatePassword(newValue)) { Ext.Msg.alert('Error', '密码不...
8. **错误修复**:EXT4包含了更强大的错误检测和修复机制,比如使用CRC校验保护元数据,增强了数据的安全性。 9. **多块分配**:一次可以分配多个连续的数据块,提高了大文件写入的效率。 10. **快速重命名**:EXT...
这种机制使得系统崩溃或不正常关机后,EXT3可以通过检查日志快速恢复文件系统的状态,避免了长时间的数据校验和修复过程。 2. **预分配**:EXT3支持文件预分配,这意味着在写入文件时,可以预先为文件分配空间,...
**EXT2数据恢复实验详解** EXT2(Second Extended File System)是Linux早期广泛使用的文件系统之一,本实验主要探讨在Linux环境下如何进行EXT2文件系统的数据恢复,特别是针对误删除文件的情况。 ### 1. 实验环境...
【EXT2数据恢复实验详解】 在计算机领域,数据恢复是一项重要的技能,特别是在使用Linux系统时。EXT2是Linux操作系统中早期广泛使用的文件系统之一。本实验主要针对EXT2文件系统的数据恢复过程,以下是对实验步骤的...
标题中的"ext2数据恢复实验的实验步骤2008.pdf"指的是一个关于如何在Linux系统下进行ext2文件系统数据恢复的实验指导文档。这个实验适用于计算机科学和信息技术领域,特别是涉及操作系统、数据存储和故障恢复技术的...
2. **数据安全性**:通过使用校验和来检测数据错误,并在发现错误时尝试自动修复。 3. **文件权限和访问控制**:支持Linux的用户和组权限模型,以及更高级的访问控制列表(ACLs)。 4. **预分配**:允许在写入文件时...
标题"ext2数据恢复实验的实验步骤win2003.pdf"涉及的知识点主要集中在Linux操作系统下的数据恢复,特别是针对ext2文件系统的数据恢复。这个实验旨在教授如何在Linux环境下进行数据恢复,特别是在文件被误删除的情况...