Knockout validationMessage 显示为 [object Object]

Knockout validationMessage appears as [object Object]

使用 Knockout,我想控制验证消息在屏幕上的显示位置。当我这样做时,消息显示的不是消息文本,而是 [object Object]。这是我的代码:

HTML

<input id="inputValue" class="form-control form-control-xs data-bind="validationElement: val""
                       data-bind="event: { keyup: maskNumber(event) }"
                       placeholder="Enter Secret Number"
                       />

<p class="validationMessage" data-bind="validationMessage: val"></p>


@*hidden input to store field to store real value*@
<span >
      "<input id="realInputValue" type="hidden" data-bind="validationOptions: {insertMessages: false}, value: val" />
</span>

TS

this.val.extend(
            {
                maxLength: 5,
                minLength: 5,
                required: { message: 'This number is required' },
                pattern: {
                    params: /^\d+$/,
                    message: 'Please enter only numeric digits'
                }
            });

我希望底部隐藏输入字段的错误消息显示在顶部可见输入字段的下方。

maskNumber 函数在将实际数字存储在隐藏的 "realInputValue" 字段中后,将 inputValue 字段中的每个数字转换为星号 (*)。

我查看了 this example and used the documentation 以及其他资源,但无论我尝试什么,当我尝试使用 validationMessage 时,我总是看到 [object Object] 错误消息。当我不使用 validationMessage 并让错误消息转到其默认位置时,我可以很好地看到错误消息的文本。

如何让实际消息出现而不是 [object Object]?

深入查看代码后,我发现了问题所在。包含错误消息的段落不应为 <p class="validationMessage" data-bind="validationMessage: val"></p>

应该是 <p class="validationMessage" data-bind="validationText: val"></p>

本质上,您需要使用validationText而不是validationMessage。我没有在文档中的任何地方找到这个。希望这对某人有所帮助。