Javascript extjs vtype在textarea上不起作用
好的,我有一个Enlish和sign的vtype,看起来像这样: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,\.\~\!\@\#\$\%\^\&\*\(\)\_\+\<\>]*$
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:)不用担心,谢谢你花时间这么做。我发布了一个答案,应该可以帮助您解决问题。感谢您的重播,但没有做到这一点,说明文本区域启动了验证检查,但仍然没有可见的红色轮廓或任何内容…请查看我更新的答案,这可能是您的问题的原因。