从.html文件中敲除js验证错误消息

KnockoutJs validation error message from .html file

本文关键字:js 验证 错误 消息 html 文件      更新时间:2023-09-26

我有一个关于KnockoutJs html5验证的问题。

如果我想在页面上包含我的错误信息,当它被加载,就像说我正在做一个前端模块为我的网店和我的错误信息来自标签。

在knockoutJS 2.2.1中,我可以这样做:

<span data-bind="validationMessage: firstName, text: 'Your error.'"></span>
 <input data-bind='value: firstName, valueUpdate: "input"' required pattern="^[A-Za-z]{1,255}$" />

这将工作得很好,我可以将我的errortag从HTML文件粘贴到HTML页面中。就像这把小提琴一样。http://jsfiddle.net/elbecita/gt228dgm/4/但是现在的问题是,在knockoutjs 3.0 f.ex下运行相同的代码。错误消息将是"这个字段是必需的。"

所以现在我不能覆盖自定义消息不再做。extend(),这是有意的,我使用这个完全错误吗?

一个gif来说明这个问题:http://puu.sh/kHJH3/92a2708c93.gif

我在stackoverflow上发现了一个类似的问题,一些解决方案似乎有些过火,但也许有一个原因?

在html中设置错误消息与knockout验证这没有任何可接受的答案,所以我的问题是我如何在html中粘贴我的错误消息?

任何意见都非常感谢,谢谢。

*(如果我错过了任何信息请让我知道,第一个帖子长时间潜伏)

验证可以有多个独立的消息,因此消息的内容不受您的控制是有道理的。您可以选择它们显示的位置,但不必担心它们说了什么。我可以看到,您可能希望拦截标准消息并将其转换为自定义消息。您可以这样做,但它不是内置到验证(据我所知)。

viewModel.errors = ko.validation.group(viewModel);
var messageSubstitutes = {
    'Invalid.': 'All letters',
    'This field is required.': 'Try some letters'
};
viewModel.errMsg = ko.computed(function () {
    var errs = viewModel.errors();
    if (errs.length === 0) return null
    var errMsg = errs[0](),        
        result = messageSubstitutes[errMsg];
    return result;
});

和HTML只是:

<legend data-bind="if:errMsg">Error: <span data-bind="text:errMsg"></span>
</legend>
<label>First name:
    <input data-bind='value: firstName, valueUpdate: "input"' required pattern="^[A-Za-z]{1,255}$" />
</label>

更新小提琴