Dojo ValidationTextBox在Enter上显示missingMessage

问题描述 投票:0回答:1

我是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

dojo
1个回答
0
投票

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

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

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

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

有人!

© www.soinside.com 2019 - 2024. All rights reserved.