Dijit ValidationTextBox:invalidMessage是否显示,具体取决于用户首先使用的内容

时间:2014-07-23 08:48:10

标签: javascript validation dojo

我已经定义了dijit.form.ValidationTextBox

var nameBox = new ValidationTextBox({
    style: 'width: 300px;',
    trim: true,
    required: true,
    regExp: '.{5,50}',
    invalidMessage: 'Name is required and must be between 5 and 50 characters',
    value: dto.name
}, 'name')

但验证并没有像我预期的那样完成。如果我进入该领域,我输入3个字符然后离开,我收到给定的消息。当我清除字段后,我仍然得到相同的消息。

然而,当我第一次聚焦该字段并将其留空时,我收到消息:

  

此值是必需的

当我,之后输入3个字符时,我有相同的标准信息,而不是我给出的自定义信息。

似乎问题的第一条错误消息“卡住了”。在小部件上。这是某种错误,或者我错误配置了什么?我使用 Dojo 1.9.2

1 个答案:

答案 0 :(得分:2)

invalidaMessage 仅用于不满足正则表达式条件的验证问题。 对于“ required = true ”条件,使用单独的“ missingMessage ”属性。如果该字段在需要时保留为空,则必须将此属性设置为显示。

var nameBox = new ValidationTextBox({
    style: 'width: 300px;',
    trim: true,
    required: true,
    regExp: '.{5,50}',
    invalidMessage: 'Name is required and must be between 5 and 50 characters',
    missingMessage: 'Name is required and must be between 5 and 50 characters',
    value: dto.name
}, 'name')

这将解决问题。