ExtJS 表单 submit时错误处理

这里不提success,提提Extjs 表单提交的failure方法。

在表单的提交中,当发生异常行为时通常分为三种情况

1. 无法连接到服务器

2. 表单验证错误

3. 业务逻辑错误

对应下面的代码

[javascript] view plaincopy

  1. failure = function(form, action){
  2. switch (action.failureType) {
  3. case Ext.form.Action.CLIENT_INVALID:
  4. Ext.ux.Toast.msg("错误", "提交的表单数据无效,请检查!");
  5. break;
  6. case Ext.form.Action.CONNECT_FAILURE:
  7. Ext.ux.Toast.msg(‘错误‘, ‘连接失败‘);
  8. break;
  9. case Ext.form.Action.SERVER_INVALID:
  10. Ext.ux.Toast.msg(‘业务逻辑错误‘, action.result.msg);
  11. }
  12. }

在业务逻辑错误中,服务器返回json可以这么写,success 当然得为false

其中errors 中对应的 id为表单控件的id,后面msg则是验证错误的显示消息咯

[xhtml] view plaincopy

  1. {
  2. msg: ‘填写错误,注意检查‘,
  3. success: false,
  4. errors : [{id : ‘name‘, msg: ‘姓名不能为空‘},{id: ‘sex‘, msg : ‘性别有错‘}]
  5. }

ExtJS 表单 submit时错误处理

时间: 2024-10-12 15:42:41

ExtJS 表单 submit时错误处理的相关文章

表单提交时如何将错误信息传递到页面中,并且保存原来提交数据

曾经何时,你还有我或许都在困惑,如何方便的将验证不通过的表单信息再返回到前台页面,例如我注册一个账号,辛辛苦苦填写了N多项,一个格式验证没有通过,一切都需要充填,虽然Ajax可以解决这个问题,但是我们总不能把所有表单提交都弄成ajax,更何况有若干人就是没事把javascript给禁止了.哎哎,好了解决方案来了,下面以用户登录为例,说说我的解决方案. 服务器端用nodejs实现: login.html 简单的提交表单 <form action="" id="loginF

Laravel在进行表单验证时,错误信息未返回

马上要毕业了,找了现在的这家公司,压力不大,自己也比较喜欢,唯一的遗憾就是手机号莫得换了(找不到换的借口). 进入正题: 之前自己的博客(http://lxiaoke.cn)是用ThinkPHP开发的,公司用的是Laravel,在进行表单验证时,遇到了一个比较简单却又让我头疼了好几天的问题,那就是验证不通过时的错误信息一直获取不到.百度上说什么的都有,最后用下面的方法解决了. 解决办法: 将middlewareGroup中的\Illuminate\Session\Middleware\Start

Extjs表单控件入门

ExtJs表单控件用formPanel来做为表单元素的容器.默认情况下,是使用Ajax异步提交. 大家知道要使用Extjs必须引入他的库,所以我们要引入以下几个文件: ext-all.css ext-base.js ext-all.js PS:笔者采用的是extjs3.0版本 那怎么加载插件呢?放心,extjs有自己加载的方法: Ext.onReady(function(){ //coding... } 实例代码: var formPanel=new Ext.form.FormPanel({ t

表单提交时编码类型enctype详解

很早以前,当还没有前端这个概念的时候,我在写表单提交完全不去理会表单数据的编码,在action属性里写好目标URL,剩下的啊交给浏览器吧~但是现在,更多时候我们都采用Ajax方式提交数据,这种原始的方式仅仅被当成优雅降级的产物. 当我们用异步方式提交表单,就需要稍微关注一下表单数据的编码问题了.回想一下,在写回调函数时是不是有根据过请求的Content-Type写不同业务逻辑的经历,那这个Content-Type和表单的编码有什么联系吗?有没有在明明前端已经发数据给后端了,后端的小伙伴死活取不到

当有多个form表单请求时如何处理?

问题:当有多个表单请求时如何处理?两种获取form表单 name属性值来区分是哪一个form表单.问题:如何获取name的值呢?<form name="myForm" method="post"action="myServlet/PassParams">解决:两种方法①.在请求处理的后面传递参数例如:action="myServlet/PassParams?formName=myform"优点:可以很方便的解决问题

(转)html 表单提交时,无法获取到disabled属性的input值

input的字段当为disabled是,无法获取值,无法改变值,所以在表单提交时,获取不到值.可以用randomly解决这个问题. <input name="country" id="country" size=12 value="demo" disabled="disabled" > 但是将disabled = "disabled"换成randomly="randomly"

表单提交时,更新的操作

//原程序的写法,意思就是,先查出数据库里面的记录,然后用提交过来的数据进行覆盖数据库里面的值,调用的方法是SetAttribute public IActionResult UpdateSaleAfterDTID(int id, string proname, string isupdate, IFormCollection values, int orderid) { if (!string.IsNullOrEmpty(isupdate)) { //表单提交时触发事件 var fchelpA

表单提交时submit按钮的值没有被提交

FORM表单中,submit提交的时候,有时候有值,有时候无值 FORM表单中,submit的name是Submit.如下<input type="submit" name="Submit" value="提交表单" /> 1.出现的几种情况 1.当点击submit按钮时,FORM被提交,提交后获取的数组中有Submit下标的值 2.回到FORM表单,直接敲回车提交,这时候发现获取的数组中没有Submit下标. 3.在浏览器版本低的情

解决YII提交POST表单出现400错误,以及ajax post请求时出现400问题

POST表单400错误: 正确做法: Add this in the head section of your layout: <?= Html::csrfMetaTags() ?> ---------------------------------  不推荐的做法,以下做法是取消CSRF令牌验证: Add this in your controller: public $enableCsrfValidation = false; 别的方法: 原来是csrf验证的问题,因为表单是自己写的,在Y