我对hasfocus绑定的敲除验证有问题。
我正在尝试验证控件并在控件失去焦点时显示错误消息。但是当表单加载自身时,规则会被触发并显示错误消息。
无论如何都要告诉表格的加载或我们初始化规则不要开火?
self.lostfocus = ko.observable(false);
self.lostfocus.extend({ NoBlankValidationlookup: { params: { control: self }, message: "Search Text cannot be empty"} });
ko.validation.rules['NoBlankValidationlookup'] = {
validator: function (val, params)
{
////if the control looses focus then validate.
if (!val)
{
if (params.control.Value().length == 0)
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
},
message: 'Please enter at least 0 characters.'
};
//HTML
<div id="Div1" class="vm" style="display: block !important; text-align: left" data-bind="validationMessage:lostfocus"></div>
请adivce。
答案 0 :(得分:0)
在表单加载时使用isModified(false)和已验证的observable。
所以运行这样的事情:
self.lostfocus.isModified(false)
答案 1 :(得分:0)
您可以添加valueUpdate以指定何时调用规则,例如:
self.lostfocus.extend({valueUpdate: 'afterKeyDown', NoBlankValidationlookup:
{ params: { control: self }, message: "Search Text cannot be empty"} });