我有一个Dojo表单,正在使用验证。我的常规字段和验证一切正常。我的表单包含一个最初为空的DataGrid,用户可以添加行。我希望我的表单验证检查表中是否至少有一行。表中的字段验证工作正常,但我需要确保它们至少添加了一行。

我尝试了类似的方法,但是没有用(即,在验证表单的其余部分时未调用该函数):

_myGrid.validator = function() {
  debugger;
  console.log("data", _myStore.objectStore.data);
}

最佳答案

我刚刚编写了这个JSFiddle,我认为它可以实现您想要的:JSFiddle link

首先,您要做的是将网格包装在dijit/form/Form中。之后,使用dojo/_base/declare创建一个新网格,该网格从DataGrid_FormMixin扩展。在小提琴的第37行。

dijit/form/_FormMixin在这里起着重要的作用:它将使您的网格继承一些功能,包括validate()isValid(),这些功能可以被覆盖以进行验证。当您调用Form.validate()时,网格也将立即生效。在我的示例中,您可以看到,无论何时提交并验证表单,都会显示带有行数的警报。该警报是在网格的validate()函数中编码的。

希望对您有所帮助!

07-24 09:44
查看更多