Javascript 空输入的敲除验证
我不想让淘汰验证按我想的那样工作。 假设我们有ViewModel: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
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);
并在首次尝试提交表单后显示更显著的警告。