验证我的Dojo Datagrid至少有一行

时间:2017-05-30 09:16:29

标签: javascript validation dojo dojox.grid

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

我尝试了类似这样的东西,但它没有用(即在验证表格的其余部分时没有调用该函数):

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

3 个答案:

答案 0 :(得分:1)

你试过这样的事吗?

if(this.yourformname.validate()&& this.grid.get('rowCount')>0){
//do your stuff
}else{
alert("either form is missing data or grid has no rows");
}

答案 1 :(得分:1)

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

首先,您需要做的是将网格包裹在dijit/form/Form中。之后,您使用从dojo/_base/declareDataGrid延伸的_FormMixin创建新网格。它位于小提琴的第37行。

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

我希望它有所帮助!

答案 2 :(得分:0)

嗯,下面是检查数据网格行数的方法。

注意 - 我不知道你在项目中使用的dojo版本,但是dojo 1.6提供行数的直接属性,即 dataGridObject.rowCount

工作代码 -

JSFiddle - http://jsfiddle.net/vikash2402/NNQpn/162/

希望这会对您有所帮助:)