Validation 敲除js中的验证问题

Validation 敲除js中的验证问题,validation,knockout.js,knockout-validation,Validation,Knockout.js,Knockout Validation,我将验证放在名称输入字段上,当您单击addFields时,您可以看到它。我遇到问题,验证消息出现在单击Add Branch按钮之前,因为在addFields函数中,我将名称的值设置为空,因为如果我不这样做,请单击edit并进行更改,然后单击Add或cancel,然后单击Add或cancel单击addfields,然后在输入字段中显示上一个值。我希望在单击添加分支时显示验证消息,并希望在单击添加字段时输入字段为空,在单击编辑时输入值。我如何才能一起实现这些场景 这里是链接 `http://jsf

我将验证放在名称输入字段上,当您单击addFields时,您可以看到它。我遇到问题,验证消息出现在单击Add Branch按钮之前,因为在addFields函数中,我将名称的值设置为空,因为如果我不这样做,请单击edit并进行更改,然后单击Add或cancel,然后单击Add或cancel单击addfields,然后在输入字段中显示上一个值。我希望在单击添加分支时显示验证消息,并希望在单击添加字段时输入字段为空,在单击编辑时输入值。我如何才能一起实现这些场景

这里是链接

 `http://jsfiddle.net/sohimohit/43zkoszu/13/` 

您可以在错误对象上使用
showAllMessages(false)


尽管我必须说你这样做的方法有点奇怪。通常,对于MVVM,您对此有一个单独的模型,并且每当您想要注册一个新的时,您都会创建一个新的模型,正如@Marius已经说过的,您需要对更改的字段使用ismodified(false)。所以,您的代码应该是这样的

self.AddField=function(){
self.BranchId(“”);
self.BranchId.isModified(false);
姓名(“”);
self.name.isModified(false);
自我描述(“”);
自我描述被修改(假);
//……等等。。
自我展示(假);
self.show.isModified(false);
self.showFields(真);
self.showFields.isModified(false);
}

另外,请注意,AddField代码中有comas(,)而不是分号(;)。

初始化name属性(self.name(“”)时,必须告诉KnockotValidation它是不变的。尝试添加self.name.isModified(false);在您将值更改为空字符串后。是的,Andres,您是正确的,但我必须在单击“编辑并更新”时显示网格的当前值,这就是为什么我必须创建这么多代码,而且我是淘汰赛新手,所以对它不太了解。你能告诉我什么是正确的方法,这样我可以减少代码的行数,并请详细解释