gpt4 book ai didi

javascript - 需要 extjs4 增强功能的高级 VType 密码验证

转载 作者:行者123 更新时间:2023-11-29 10:52:25 24 4
gpt4 key购买 nike

我想在取自 http://dev.sencha.com/deploy/ext-4.0.2a/examples/form/adv-vtypes.html 的 extjs 上使用高级 VType 实现密码验证,但如果密码确认没有值(如果密码值为“测试”且确认密码值为空,则表单有效),看起来确认密码文本字段不会在更改密码文本字段时验证。我敢肯定这不是一件正确的事情。如何通过以下条件使/强制确认密码文本字段有效/无效:

  1. 如果密码值不等于确认密码值则确认密码无效(即使确认密码值为空)
  2. 如果密码值为空并确认密码值为空然后确认密码有效
  3. 如果密码值等于确认密码值则确认密码有效

谢谢

最佳答案

好的,看来我已经解决了自己的问题。正如分子人所说,这是无法(轻易)实现的。

我需要覆盖 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/

关于javascript - 需要 extjs4 增强功能的高级 VType 密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com