如何显示vtype警告并且不设置字段无效?

问题描述 投票:2回答:1

这段代码对我不起作用,因为我无法对form.isValid()做任何事情,所以我只需要显示工具提示和颜色文本域边框,向用户显示我不建议使用长度> 15,但是如果代码无论如何,它确定。

// I have some field
{
    xtype: 'textfield',
    maskRe: /[0-9.]/,
    vtype: 'imei',
    fieldLabel: 'IMEI:',
    name: 'imei',
    flex: 1
}

// validation for textfield on keypress
    imei: function (v) {
        return v.length < 16;
    },
    imeiText: 'length more then 15 symbols is not recommended'

// validation on save button click
validateForm: function (form) {
    if (!form.isValid()) {
        // don't save form
    }// can't save form because imei is not valid
}

是否有任何方法可以显示vtype工具提示,颜色边框并且不设置textfield无效?

任何有关这方面的帮助将不胜感激。

javascript extjs extjs4
1个回答
1
投票

你可以在文本字段中使用监听器:

listeners: {
                change: function (c, newValue, oldValue) {
                    var tn = newValue.replace(/[^0-9]/g, '');
                    if (tn.length === 0) {
                        setTimeout(function () {
                            c.markInvalid('Imei length must be at least 1 symbol');
                        }, 100);

                    }
                    if (tn.length > 15) {
                        setTimeout(function () {
                            c.markInvalid('Imei length more than 15 symbols is not recommended');
                        }, 100);
                    }
                }
            },

有一个超时,因为基本字段在推送事件后触发markInvalid为''。

看看小提琴上的例子:https://fiddle.sencha.com/#view/editor&fiddle/2r9h

© www.soinside.com 2019 - 2024. All rights reserved.