我在一个项目中使用UF Validator,我想添加一些自定义验证检查。
我想添加一个用户名检查,如果输入包含 az 0-9 以外的任何内容,则该检查会给出错误。没有空格或任何东西。同样,我想添加一个名称检查,只允许 az,但允许空格。
我的检查基于内置的电子邮件验证。这是过滤器:
var mail_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
这是电子邮件检查的代码:
// E-MAIL VALIDATION
if (obj.hasClass('req-email')) {
tmpresult = mail_filter.test(valAttr);
if (!tmpresult) errorTxt = (valAttr == '') ? opts.errorMsg.reqMailEmpty : opts.errorMsg.reqMailNotValid;
result = result && tmpresult;
}
这是我的过滤器:
var username_filter = /^[a-zA-Z0-9]/;
var name_filter = /^[a-zA-Z ]/;
这是我的代码:
// USERNAME VALIDATION
if (obj.hasClass('req-username')) {
tmpresult = username_filter.test(valAttr);
if (!tmpresult) errorTxt = (valAttr == '') ? opts.errorMsg.reqUsernameEmpty : opts.errorMsg.reqUsernameNotValid;
result = result && tmpresult;
}
// NAME VALIDATION
if (obj.hasClass('req-name')) {
tmpresult = name_filter.test(valAttr);
if (!tmpresult) errorTxt = (valAttr == '') ? opts.errorMsg.reqNameEmpty : opts.errorMsg.reqNameNotValid;
result = result && tmpresult;
}
我在这里也引用了它们:
// gather inputs & check is valid
$(merged_options.scope+' .req-email, '+merged_options.scope+' .req-string, '+merged_options.scope+' .req-same, '+merged_options.scope+' .req-both, '+merged_options.scope+' .req-numeric, '+merged_options.scope+' .req-date, '+merged_options.scope+' .req-min, '+merged_options.scope+' .req-username, '+merged_options.scope+' .req-name').each(function() {
thisValid = $.formValidator.validate($(this),merged_options);
boolValid = boolValid && thisValid.error;
if (!thisValid.error) errorMsg = thisValid.message;
});
相应的错误消息也存在,但我认为它们不需要显示。
我认为这会很好,但是当我尝试时,它的行为很奇怪。显示错误的错误消息,而不是按照我想要的方式验证它。我检查了他们的网站并在此处搜索,但找不到与此相关的任何内容。