Javascript 空输入的敲除验证

Javascript 空输入的敲除验证,javascript,knockout.js,knockout-validation,Javascript,Knockout.js,Knockout Validation,我不想让淘汰验证按我想的那样工作。 假设我们有ViewModel: var viewModel = function ViewModel() { var self = this; self.number = ko.observable("").extend({ pattern: new RegExp("^(\\d{10})$") }); self.submitFunction = function () { if (self.number.isVali

我不想让淘汰验证按我想的那样工作。 假设我们有ViewModel:

var viewModel = function ViewModel() {
    var self = this;

    self.number = ko.observable("").extend({ pattern: new RegExp("^(\\d{10})$") });

    self.submitFunction = function () {
        if (self.number.isValid()) {
            //SUBMIT
        }
    };
}
在这种情况下,当self.number为空时,函数返回true。当我们添加错误消息(字段从一开始就不是红色)时,这非常好。但当我提交值时,它应该被认为是无效的,并且UI验证应该被更新。
这里的最佳做法是什么?

您是否尝试过设置
必需:true
?是的,但在开始时会触发验证,并且字段从一开始就是“红色”。我必须不直接在输入上应用错误类。它是这样完成的:data bind=“css:{error:!number.isValid()}从一开始就显示“this is required”提示有什么不对?(当然,您可以检查
if(self.number.isValid()&&self.number()!=”)
但这种方式违背了验证插件的目的。)从一开始就显示所有验证错误(红色字段等)看起来不“好”。我不想在那里检查空字符串,但也许我必须这样做。你可以让它看起来“好”-从一开始就向人们展示强制性内容是正确的。你可以设置一个
self.attemptedSubmit=ko.observable(false);
并在首次尝试提交表单后显示更显著的警告。