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 的控件,而不是自己拓展的插件,弄清这个很关键。

  • 相关阅读:
    选择筛选
    添加标签2 jquery 和JS
    最全的常用正则表达式大全
    Javascript和ECMAScript二三事
    display:none和visibility: hidden二三事
    说人话
    渐进增强和优雅降级
    css的优先级以及!important的使用
    解决VS如何同时打开两个工程(xp和win7)
    jQuery验证控件jquery.validate.js使用说明+中文API
  • 原文地址:https://www.cnblogs.com/shen119/p/3311821.html
Copyright © 2011-2022 走看看