Javascript 是否可以在extjs中完成动态Vtype验证(如下面的代码)
我是extjs新手。我想知道,是否可以像下面的代码那样进行动态vtype验证Javascript 是否可以在extjs中完成动态Vtype验证(如下面的代码),javascript,extjs,Javascript,Extjs,我是extjs新手。我想知道,是否可以像下面的代码那样进行动态vtype验证 customRegEX = /^[a-z0-9]/i customMsg = 'Must be an alphanumeric word' function ConstructVtype(customRegEX,customMsg) { var custExp = customRegEX; Ext.apply(Ext.form.VTypes, { AlphaNum: functio
customRegEX = /^[a-z0-9]/i
customMsg = 'Must be an alphanumeric word'
function ConstructVtype(customRegEX,customMsg)
{
var custExp = customRegEX;
Ext.apply(Ext.form.VTypes, {
AlphaNum: function(v,field) {
return /^[a-z0-9]/i.test(v); // instead of this code
return custExp.test(v);
},
AlphaNumText: customMsg,
AlphaNumMask: custExp
});
}
但是我在return custExp.test(v)行中得到错误(Object不支持此方法)代码>
因为对象中没有名为test的方法(custExp
)
是否可以将custExp
类型转换到保存测试方法的对象
如果上述观点是可能的,请提供该对象类型以及如何进行类型转换?
或
提供如何以不同方式实现此功能
嗨“Alexander Gyoshev”谢谢你的重播
如果我按照u推荐的方式工作,但我需要通过textfield change动态更改regexp值,就像下面的代码一样,这个人怎么做
function ConstructVtype()
{
var customRegEX = this.customRegEX; ////^[a-z0-9]/i,
customMsg =this.customErrorMsg;
Ext.apply(Ext.form.VTypes, {
AlphaNum: function(v,field) {
return customRegEX.test(v);
},
AlphaNumText: customMsg,
AlphaNumMask: customRegEX
});
}
var txt = new Ext.form.TextField({
renderTo:Ext.getBody(),
validator :ConstructVtype,
fieldLabel: 'Telephone',
name: 'Telephone',
vtype:'AlphaNum',
id:'test1',
customRegEX:'/^[a-z0-9]/i',
customErrorMsg:'Must be an alphanumeric word',
width:240
});
var txt2 = new Ext.form.TextField({
renderTo:Ext.getBody(),
validator :ConstructVtype,
fieldLabel: 'Telephone',
name: 'Telephone',
vtype:'AlphaNum',
id:'test2',
customRegEX:'/^[a-zA-Z]/i',
customErrorMsg:'Must be an alphabets',
width:240
});
提前感谢函数的参数将覆盖全局参数。您可以通过以下方式重构上述代码:
var customRegEX = /^[a-z0-9]/i,
customMsg = 'Must be an alphanumeric word';
function ConstructVtype()
{
Ext.apply(Ext.form.VTypes, {
AlphaNum: function(v,field) {
return customRegEX.test(v);
},
AlphaNumText: customMsg,
AlphaNumMask: customRegEX
});
}
[已编辑]
当然,我忘了在regexp字符串周围加上“”。我使用了一些动态函数将值传递给vtype。
你可以在我的主题中看到
希望能有所帮助。你好,alex thnks等待你的回复…我需要使用此方法解决问题..请检查更新的问题..嘿,Mchl,thnk等待你的回复..你能查看我更新的问题吗。。。如何对窗口或窗体中的所有文本框使用该常用方法。
var customRegEX = new RegExp('^[a-z0-9]',i);