Dojo验证文本框显示输入时缺少的消息

nr7wwzry  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(134)

我是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。而且,我希望在出错时出现红色边框。我做错了什么?

pdkcd3nj

pdkcd3nj1#

要摆脱错误的invalidMessage添加一个黑客:一个空的invalidMessage属性到data-dojo-props。

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

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

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

有人!

相关问题