`

Ext数据校验

    博客分类:
  • Ext
ext 
阅读更多

在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中,默认支持4vtype:

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_表单提交_数据校验:深入解析与实践 #### 一、文本框输入控件(Ext.form.TextField) 在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。...

    ext4.0学习总结及使用说明

    - **数据结构保留:** 原有的Ext3数据结构保持不变,新数据则按照Ext4的数据结构进行存储。 **2. 更大的文件系统和文件** - **支持容量:** - 文件系统:最大支持1EB(1,048,576TB) - 单个文件:最大支持16TB -...

    EXT 表单验证EXT 表单验证

    EXT表单验证是EXT JS框架中的一个重要特性,用于在用户输入数据时确保数据的正确性和完整性。EXT JS是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计。它提供了丰富的组件库,包括表格、表单、菜单等,...

    Ext+JSP实现数据提交

    本篇将详细探讨如何利用`Ext`前端框架与`JSP`服务器端页面来实现数据的提交。 `Ext`是一个强大的JavaScript库,主要用于构建富客户端应用。它提供了丰富的组件库,包括表格、表单、菜单等,以及一套完整的MVC...

    EXT表单验证之TextField

    EXT是Sencha公司开发的一款基于JavaScript的富客户端应用框架,它提供了一套完整的组件化UI构建工具,其中EXT表单(FormPanel)是用于创建复杂数据输入和验证的重要部分。在EXT表单中,TextField是最常见的输入控件...

    ext5第一部分

    2. **更好的数据安全性**:EXT5可能会引入更高级别的错误检测和修复机制,例如使用更强的校验和来保护数据免受损坏。 3. **事务处理**:EXT4引入了日志记录(journaling)来提高文件系统的稳定性,但EXT5可能会...

    examples.ext.net-5.zip

    FormPanel可以嵌入各种Field组件,如TextField、ComboBox、DatePicker等,配合Validator进行数据校验,确保数据的完整性和准确性。 此外,TreePanel实例则展示了EXT.NET在构建层次结构数据展示方面的强大能力。...

    EXT登陆系统,感受ext的强大,希望大家好好学习ext,用这个开发的公司还是不少的

    例如,需要对用户输入的数据进行校验,防止SQL注入等攻击;使用HTTPS协议确保数据传输的安全性;对密码进行加密存储,以保护用户信息不被泄露。 总的来说,EXT是一个强大的前端开发框架,特别适合构建复杂的、互动...

    EXT学习心得,ext

    ### EXT学习心得与关键知识点详解 #### 布局Center的重要性 在EXT框架中,`layout: 'center'`是一个非常关键的配置属性...无论是布局管理、数据网格操作、下拉框事件还是表单验证,EXT都提供了灵活而强大的解决方案。

    EXT3.0的经典Demo

    6. **错误检测和修复**:EXT3包含了多种错误检测机制,如CRC校验,用于检测并修复数据错误。 7. **软更新和同步模式**:EXT3提供了两种日志模式,一种是软更新模式,它在大多数情况下提供较快的性能,但在断电后...

    struts与ext集成

    Action可以使用Struts2的拦截器进行数据校验、事务管理等操作。 5. **EXT Direct** EXT Direct是EXT和服务器之间通信的一种高效方式,它允许直接调用服务器端的方法,使得前后端的交互更为简洁。在Struts2中,需要...

    Ext做密码验证

    Ext.create('Ext.form.field.Text', { fieldLabel: 'Password', name: 'password', listeners: { change: function(field, newValue) { if (!validatePassword(newValue)) { Ext.Msg.alert('Error', '密码不...

    ext-4.0.0-gpl.zip EXT4.0第二卷

    8. **错误修复**:EXT4包含了更强大的错误检测和修复机制,比如使用CRC校验保护元数据,增强了数据的安全性。 9. **多块分配**:一次可以分配多个连续的数据块,提高了大文件写入的效率。 10. **快速重命名**:EXT...

    ext3.0完整版............

    这种机制使得系统崩溃或不正常关机后,EXT3可以通过检查日志快速恢复文件系统的状态,避免了长时间的数据校验和修复过程。 2. **预分配**:EXT3支持文件预分配,这意味着在写入文件时,可以预先为文件分配空间,...

    ext2数据恢复实验的实验步骤 2003.pdf

    **EXT2数据恢复实验详解** EXT2(Second Extended File System)是Linux早期广泛使用的文件系统之一,本实验主要探讨在Linux环境下如何进行EXT2文件系统的数据恢复,特别是针对误删除文件的情况。 ### 1. 实验环境...

    ext2数据恢复实验的实验步骤win2008.pdf

    【EXT2数据恢复实验详解】 在计算机领域,数据恢复是一项重要的技能,特别是在使用Linux系统时。EXT2是Linux操作系统中早期广泛使用的文件系统之一。本实验主要针对EXT2文件系统的数据恢复过程,以下是对实验步骤的...

    ext2数据恢复实验的实验步骤2008.pdf

    标题中的"ext2数据恢复实验的实验步骤2008.pdf"指的是一个关于如何在Linux系统下进行ext2文件系统数据恢复的实验指导文档。这个实验适用于计算机科学和信息技术领域,特别是涉及操作系统、数据存储和故障恢复技术的...

    ext3.3.1

    2. **数据安全性**:通过使用校验和来检测数据错误,并在发现错误时尝试自动修复。 3. **文件权限和访问控制**:支持Linux的用户和组权限模型,以及更高级的访问控制列表(ACLs)。 4. **预分配**:允许在写入文件时...

    ext2数据恢复实验的实验步骤win2003.pdf

    标题"ext2数据恢复实验的实验步骤win2003.pdf"涉及的知识点主要集中在Linux操作系统下的数据恢复,特别是针对ext2文件系统的数据恢复。这个实验旨在教授如何在Linux环境下进行数据恢复,特别是在文件被误删除的情况...

Global site tag (gtag.js) - Google Analytics