Javascript extjs vtype在textarea上不起作用

Javascript extjs vtype在textarea上不起作用,javascript,extjs,Javascript,Extjs,好的,我有一个Enlish和sign的vtype,看起来像这样: Ext.apply(Ext.form.VTypes, { excel: function (v) { return /^.*.(xls)$/.test(v); }, excelText: 'Must be an *.xls file', englishOnly: function (v) { return /^[a-z0-9,\.\~\!\@\#\$\%\^\&\*\(\)\_\+\<\>]*$

好的,我有一个Enlish和sign的vtype,看起来像这样:

Ext.apply(Ext.form.VTypes, {
excel: function (v) {
    return /^.*.(xls)$/.test(v);
},
excelText: 'Must be an *.xls file',
englishOnly: function (v) {
    return /^[a-z0-9,\.\~\!\@\#\$\%\^\&\*\(\)\_\+\<\>]*$/.test(v);
},
englishOnlyTest: 'Must be English letters'
new Ext.FormPanel({
    id: 'add-label-form',
    url: hp,
    frame: true,
    baseParams: { actionName: 'AddLable' },
    defaultType: 'textfield',
    labelWidth: 70,
    items: [{
        id: 'tbKey',
        fieldLabel: localize.key,
        allowBlank: false,
        name: 'tbKey',
        anchor: '100%'
    }, {
        id: 'tbHebrewTran',
        fieldLabel: localize.hebrew,
        allowBlank: false,
        name: 'tbHebrewTran',
        anchor: '100%'
    }, {
        id: 'tbEnglishTran',
        fieldLabel: localize.english,
        allowBlank: false,
        name: 'tbEnglishTran',
        anchor: '100%'
    }, {
        id: 'tbDescription',
        xtype: 'textarea',
        vtype:'englishOnly',
        fieldLabel: localize.description,
        allowBlank: true,
        name: 'tbDescription',
        anchor: '100%'
    }],
    buttons: [{
        text: localize.submit,
        formBind: true,
        handler: onAddLabelSubmitClick
    }, {
        text: localize.reset,
        handler: function () {
            var f = Ext.getCmp('add-label-form').getForm();
            f.reset();
        }
    }]
})
vtype处理程序被调用,并按预期返回false,但表单仍然有效,并且屏幕上没有显示任何警报。。。
为什么会这样?

确保在
表单面板
配置中包含
监视器有效:true

下面是API的一条注释,更详细地解释了配置选项:

监视器有效:布尔值

如果为true,则窗体将监视其 有效状态客户端和定期 激发clientvalidation事件 通过那个州

在监视有效状态时 FormPanel启用/禁用其任何功能 已配置的按钮 配置为formBind:true 取决于表单是否有效 或者不是。默认为false

使用此设置,您应该会看到按钮已启用/禁用,并且在应用
vtype
的任何字段周围都会出现一个红色轮廓

更新:


我注意到
englishOnly
的文本变量定义为englishOnlyTest,我认为它应该定义为englishOnlyText(您拼写的是“test”而不是“text”)。如果我没有记错的话,框架希望看到文本附加到您希望用于返回文本的字符串中。这可能就是你看不到任何红色轮廓或弹出文本的原因。

谢谢你,现在才注意到。。。opsss:)不用担心,谢谢你花时间这么做。我发布了一个答案,应该可以帮助您解决问题。感谢您的重播,但没有做到这一点,说明文本区域启动了验证检查,但仍然没有可见的红色轮廓或任何内容…请查看我更新的答案,这可能是您的问题的原因。