knockout.js 敲除验证消息显示为[object Object]

aiazj4mn  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(157)

使用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>

技术支持

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并使用了the documentation以及其他资源,但无论我如何尝试,当我尝试使用validationMessage时,我总是看到错误消息为[object Object]。当我不使用validationMessage并让错误消息转到其默认位置时,我可以很好地看到错误消息的文本。
如何使实际消息代替[object Object]显示?

jobtbby3

jobtbby31#

在深入查看代码后,我发现了问题。包括错误信息的段落不应该是<p class="validationMessage" data-bind="validationMessage: val"></p>
而应该是<p class="validationMessage" data-bind="validationText: val"></p>
从本质上讲,你需要使用validationText而不是validationMessage。我在文档中的任何地方都没有发现这一点。希望这能帮助一些人。

相关问题