Kendo Grid:使用model.set更新必填字段的值会触发验证错误

Mat*_*Mat 2 kendo-ui kendo-grid

我有一个使用自定义弹出编辑器的Kendo Grid.其中一个字段是使用远程数据源的Kendo下拉列表.

当用户进行选择时,使用与所选项目相关联的数据来更新弹出编辑器中的几个其他字段model.set.

这很有效:模型和字段都会更新.

但是,如果我然后添加required validationMessage="This field is required"到正在更新的字段,model.set则会触发验证错误,并且不会更新字段.

我已经设置了一个JSFiddle来演示这个问题.在这种情况下,可以通过单击Set Product按钮来设置自定义弹出编辑器中的ProductName .您会注意到触发了验证错误,但如果required从字段中删除该属性,则会正确更新.

这是一个错误吗?为什么在设置值时会触发验证错误?

编辑:只是为了澄清 - 这是在添加新记录时,而不是编辑现有记录.

Ona*_*Bai 7

当您为某个值分配ProductName实际上正在失去焦点时input,会触发验证并让它抱怨将其留空.

解决方案是首先将值分配给input然后执行set.

var win = $(this).closest("[data-role=window]");
var uid = win.data("uid");
var input = $("[name='ProductName']", win); 
// Assign value (anything works)
input.val("Test Product");
var model = $("#grid").data("kendoGrid").dataSource.getByUid(uid);
model.set('ProductName','Test Product');
Run Code Online (Sandbox Code Playgroud)

你的小提琴修改在这里:http://jsfiddle.net/OnaBai/ZPuS8/8/