Knockout.js 敲除未显示错误消息范围

Knockout.js 敲除未显示错误消息范围,knockout.js,knockout-2.0,knockout-validation,Knockout.js,Knockout 2.0,Knockout Validation,我正在使用敲除验证,下面是我的模型的样子 function SignInViewModel() { var self = this; self.userName = ko.observable('').extend({ required: true, pattern: { message: 'Username must be a valid email address', params: /^([A

我正在使用敲除验证,下面是我的模型的样子

function SignInViewModel() {

    var self = this;
    self.userName = ko.observable('').extend({
        required: true,
        pattern: {
            message: 'Username must be a valid email address',
            params: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
        }
    });
    self.password = ko.observable('').extend({
        required: true
    });

    self.errors = ko.validation.group(self);
    self.login = function (e) {

        if (self.errors().length == 0) {

            $.post("/account/jsonlogin", { userName: self.userName(), password: self.password(), returnUrl: "/" })
                .done(function (result) {
                    redirect(result.redirect);
                }).error(function () {

                });
        } else {

            self.errors.showAllMessages();
        }
    }

}
ko.validation.configure({
    insertMessages: true,
    decorateElement: true,
    errorElementClass: 'error'
});
$(function () {
    ko.applyBindings(new SignInViewModel());
});
当我在
userName
中输入一个无效的电子邮件地址,并通过单击我的提交按钮调用login时,knockout会在元素旁边追加一条错误消息span,但设置为不显示。问题是什么


谢谢

您能用这把小提琴重现您的问题吗:

--

这对我有用。您将立即看到错误计数为2,按“登录”将显示错误。键入无效电子邮件将显示该电子邮件

====

HTML


问题是由于引导,因为引导有一个类

.input-append, .input-prepend {
   margin-bottom: 5px;
   font-size: 0;
    white-space: nowrap;
 }
字体大小:0
正在产生问题。淘汰赛正如预期的那样进行得很好

从代码中删除
'

self.userName = ko.observable('').extend({
在代码中

self.userName = ko.observable('').extend({
上面的一行应该更像这样:

self.userName = ko.observable().extend({

错误消息将显示在span标记中。

@Jhon Earles我正在使用引导程序。在我看来,使用引导程序时,我们应该做些什么不同的事情吗?不。。。引导应该没有影响。我们在我的办公室一起使用引导、淘汰和淘汰验证。我已经用Bootstrap更新了我的小提琴。实际上,正如我所想的,问题是Bootstrap中有一个类
。input append、.input prepend
他们设置了
字体大小:0
,这造成了问题
self.userName = ko.observable().extend({