zoukankan      html  css  js  c++  java
  • Ext.ux.form.Validation 验证插件的使用

    Ext.define('Ext.ux.form.Validation', {
        extend: 'Ext.AbstractPlugin'
        , alias: 'plugin.uxvalidation'

        , init: function (view) { //view代表传入进来的Ext.form. field.Field
            Ext.override(view, {
                getErrors: function (value) {
                    var me = this, errors = me.callParent(arguments);
                    console.log(me);
                    if (!me.disabled && me.remoteValidator) {
                        var params = {};
                        for (var i in me.remoteValidator.params) {
                            params[i] = me.up('form').down(me.remoteValidator.params[i]).getValue() || 'empty'; //down(包括up)

    实际上是调用了Ext.ComponentQuery的query方法,其参数可以为itemId ,不过要加#作为前缀
                

            }
                        Ext.Ajax.request({
                            url: me.remoteValidator.url,
                            params: params,
                            method: 'GET',
                            scope: this,
                            callback: function (options, success, response) {
                                if (success) {
                                    var ret = Ext.JSON.decode(response.responseText).data;
                                    if (!ret.Success) {
                                        me.setActiveErrors([ret.ErrorMsg]);
                                    }
                                }
                            }
                        });
                    }
                    return errors;
                }
            })
        }
    });

    1.以前写插件以为传入进来的容器同过this.cmp来寻找,而对于验证插件直接可以调用init(view),会将form空间当参数传进来。

    2.这里调用Ext.override的方法重写了控件的getErrors()方法,但是会继续调用父级方法me.callParent(arguments);

    3.通过down 查找到对应的控件,然后获取其值

    4.调用  Ext.Ajax.request实现后台数据验证

    5.这里的me指代的是form 的控件,而不是自己拓展的插件,弄清这个很关键。

  • 相关阅读:
    使用java调用fastDFS客户端进行静态资源文件上传
    FastDFS概念、原理及CentOS7下安装实战
    Centos7安装Nginx实战
    Maven install [WARNING] The artifact aspectj:aspectjrt:jar:1.5.4 has been relocated to org.aspectj:aspectjrt:jar:1.5.4
    IOS照片颠倒分析及PHP服务端的处理
    web开发实战--弹出式富文本编辑器的实现思路和踩过的坑
    小木的智慧屋--微信公众号的推广案例分析(1)
    web开发实战--图片裁剪和上传
    springmvc学习笔记--ueditor和springmvc的集成
    网页闯关游戏(riddle webgame)--H5刮刮卡的原理和实践
  • 原文地址:https://www.cnblogs.com/shen119/p/3311821.html
Copyright © 2011-2022 走看看