我有一個視圖模型爲這樣:清除或重置knockout驗證validatedObservable?
var prop1 = ko.observable().extend{ required: true },
prop2 = ko.observable().extend{ required: true };
var validation = ko.validatedObservable([prop1, prop2]);
function resetFields() {
prop1(undefined);
prop2(undefined);
}
var vm = {
prop1: prop1,
prop2: prop2,
validation: validation,
reset: resetFields
};
性質PROP1和PROP2正在通過validatedObservable正確驗證,但是當我執行resetFields,這些屬性然後對他們的錯誤,因爲他們已經被修改,是必要的。
是否有重置驗證的observable的方法,就好像它沒有被更改過?
更新:我是從採購的NuGet knockout.validation,並使用1.0.1版
此解決方案可以工作,但不是在所有情況下:'showAllMessages(false)'只將isModied的可觀測值設置爲false,導致錯誤消息被移除,但是它不會清除驗證結果**。所以'isValid()'將保持爲'false':'vm.reset(); console.log(vm.validation.isValid()); //輸出:false vm.validation.errors.showAllMessages(false) console.log(vm.validation.isValid()); //輸出:false' http://jsfiddle.net/CjsCS/ – nemesv