剑道网格:使用model.set更新必填字段的值会触发验证错误。

问题描述 投票:2回答:2

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

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

这样做很好:模型和字段都更新了。

然而,如果我再添加 required validationMessage="This field is required" 的字段进行更新。model.set 验证错误被触发,字段没有更新。

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

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

编辑:只是想澄清一下 -- 这是在添加新记录时,而不是编辑现有记录。

kendo-ui kendo-grid
2个回答
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');

您的提琴在这里修改。http:/jsfiddle.netOnaBaiZPuS88

© www.soinside.com 2019 - 2024. All rights reserved.