Dojo ValidationTextBox在Enter上显示missingMessage

时间:2018-09-10 11:13:54

标签: dojo

我是Dojo的新手,所以请多多包涵。我创建了一个继承自ValidationTextBox和SimpleTextarea的小部件:

define([
    'dojo/_base/declare',
    'dijit/form/ValidationTextBox',
    'dijit/form/SimpleTextarea'
    ],
    function (declare, ValidationTextBox, SimpleTextarea) {
        return declare([
            ValidationTextBox,
            SimpleTextarea
        ], {
        });
    }
);

我在这样的html页面中使用它:

                    <textarea   class="dijitTextBox dijitTextArea dijitTextBoxHover dijitTextAreaHover dijitHover"
                                data-dojo-attach-point="dutyReasonTextarea"
                                data-dojo-type="aysist/widgets/common/ValidationTextArea"
                                data-dojo-props="placeholder: '${nls.employee.agenda.duty_hour_reason}',required: true, missingMessage:'missingMessage: ${nls.employee.agenda.missing_duty_reason_error}', invalidMessage:'The value is not valid'"
                                value=""></textarea>

当我在文本框中键入内容时,没有错误消息弹出。但是,只要键入Enter,我就会收到invalidMessage。另外,我希望出现错误时出现红色边框。 我在做什么错了?

invalidMessage displayed after typing Enter

1 个答案:

答案 0 :(得分:0)

要摆脱错误的invalidMessage,请添加一个技巧:data-dojo-props的空invalidMessage属性。像这样:

<textarea ... data-dojo-props="...,invalidMessage:''"value=""></textarea>

要使validatorTextarea小部件的内容正确验证,以便在添加带有换行符的内容时没有红色边框,请在自定义ValidatorTextarea小部件中使用验证器。像他一样:

validator: function(value) {
    return value && value.length > 0
}

有人吗!