我想在从http://dev.sencha.com/deploy/ext-4.0.2a/examples/form/adv-vtypes.html取得的extjs上使用高级VType实施密码验证,但是如果密码确认没有值(如果密码值为’test,则确认密码文本字段似乎无法验证密码文本字段的更改) ‘并确认密码值为空白,则该表格有效).我确定这是不对的.
如何通过以下条件使/确认密码文本字段有效/无效:
>如果密码值不等于确认密码值,请确认
密码无效(即使确认密码值为空)
>如果密码值为空白并确认密码值为空白,则
然后确认密码有效
>如果密码值等于确认密码值,则确认
密码有效
谢谢
解决方法:
好的,看来我已经解决了自己的问题.
正如分子人所说,这是(轻松)实现的.
我需要重写Ext.form.field.Text.getErrors来解决这个问题
Ext.form.field.Text.override({
getErrors: function(value) {
var me = this,
errors = me.callParent(arguments),
validator = me.validator,
emptyText = me.emptyText,
allowBlank = me.allowBlank,
vtype = me.vtype,
vtypes = Ext.form.field.VTypes,
regex = me.regex,
format = Ext.String.format,
msg;
value = value || me.processRawValue(me.getRawValue());
if (Ext.isFunction(validator)) {
msg = validator.call(me, value);
if (msg !== true) {
errors.push(msg);
}
}
if (value.length < 1 || value === emptyText) {
if (!allowBlank) {
errors.push(me.blankText);
}
//FIX BY ME : NEED TO COMMENT THIS BECAUSE ITS CAN IGNORING VTYPE AS ITS IMMEDIATELY RETURN ERRORS
//return errors;
}
if (value.length < me.minLength) {
errors.push(format(me.minLengthText, me.minLength));
}
if (value.length > me.maxLength) {
errors.push(format(me.maxLengthText, me.maxLength));
}
if (vtype) {
if(!vtypes[vtype](value, me)){
errors.push(me.vtypeText || vtypes[vtype +'Text']);
}
}
if (regex && !regex.test(value)) {
errors.push(me.regexText || me.invalidText);
}
return errors;
}
});
这是完整的代码http://jsfiddle.net/gajahlemu/SY6WC/
标签:extjs,extjs4,javascript 来源: https://codeday.me/bug/20191202/2086935.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。