在 Dijit ValidationTextBox 上使用 dojox.validate,但不要求文本

Use dojox.validate on Dijit ValidationTextBox, but not make text required

在我的 Dijit 表单中,我有以下 ValidationTextBox:

<input data-dojo-type="dijit/form/ValidationTextBox"
    name="email" data-dojo-props="required: true,
    validator:dojox.validate.isEmailAddress, 
    invalidMessage: 'Invalid email'" />

但是,我想让字段不是是必需的(即允许它为空),但仍然使用dojox.validate方法。删除 required: true 或明确设置 required: false 似乎不起作用;该字段仍然显示 "Invalid email." 如果文本存在,我如何才能仅使用验证方法?

编写您自己的验证器并设置 required=false,例如:

 <input data-dojo-type="dijit/form/ValidationTextBox"
    name="email" data-dojo-props="required: false,
    validator: function(text){
                   if (!text){
                     return true;
                   }
                   return dojox.validate.isEmailAddress(text);
                  },
    invalidMessage: 'Invalid email'" />