简单模式RegEx验证不返回错误消息
Simple Schema RegEx validation doesn't return error message
我正在用SimpleSchema验证我的数据。除了试图获得regex验证的错误消息外,它似乎在大多数情况下都可以工作。
我有的是:
FormSchema = new SimpleSchema({
name: {
label: "Name",
type: String,
min: 2,
max: 25
},
email: {
label: "Email",
type: String,
regEx: SimpleSchema.RegEx.Email
}
});
var errors = [];
var data = {
name: '',
email: '',
};
var context = FormSchema.newContext();
if (!context.validate(data)) {
var fields = context.invalidKeys();
for (var i in fields) {
errors.push(context.keyErrorMessage(fields[i].name));
}
}
之后,errors
包含以下内容:
["Name must be at least 2 characters", "Unknown validation error"]
从我的理解来看,有一个默认的错误消息为SimpleSchema.RegEx.Email
正则表达式定义。
如何获取email
字段的错误信息?
这个问题已经提了几个月了,但是我会试着给那些邮件落在这里的人一个答案…
我没有运行这段代码来测试,但我最初的想法是验证第一个键"name",如果失败,它返回您看到["Name must be at least 2 characters", "Unknown validation error"]
的错误。
让我进一步解释:
你定义的地方:
var data = {
name: '',
email: '',
};
您已经将name字段的值定义为空。然后在几行之后执行context.validate(data)
。您还为名称配置了min: 2
选项,该选项在类型为String的上下文中,然后min选项将验证数据对象中的字符串是否包含至少两个字符长的字符串(更不用说规定上限的最大值了)。在将name参数设置为[String]
的上下文中,这意味着模式的name属性是一个字符串数组,然后min选项将尝试根据name属性中的条目数进行验证。
通过在数据对象中提供满足字符串长度的名称或从验证要求中删除最小值来修复错误。
您将从SimpleSchema获得一个错误,抱怨数据对象中的email属性不满足email正则表达式。
相关文章:
- CKFinder 3为所选文件返回错误的URL
- WebView返回错误的window.innerHeight
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- sqlite查询返回错误-can'我不知道为什么
- Javascript返回错误的Date值(NodeJS)
- javascript getDate getMonth返回错误的月份
- 函数返回错误'令牌{'
- 为什么我在Cloud9中的http请求总是返回错误
- 当jQuery返回错误时,如何在jQuery中重新发送ajax请求
- ontouchend-ios返回错误的坐标
- node.js mongojs findOne回调返回错误为null
- jQuery Ajax+经典ASP返回错误'意外的输入结束'
- 如果URL's链接返回错误
- 时刻.js时区值返回错误的时间戳
- 简单的jquery不起作用,并返回错误
- 在回调返回错误中带有点的 JSONP
- 在页面发布到服务器并返回错误后保留 javascript 更改
- web2py服务器返回错误,但已提交查询
- Javascript错误-左移位返回错误的输出