【问题标题】:Kendo Popup Grid Editing : select atleast one checkbox validation剑道弹出网格编辑:选择至少一个复选框验证
【发布时间】:2013-09-11 10:28:36
【问题描述】:

我有一个绑定到具有 10 个字段的数据源的网格,所有这些字段都是复选框。网格已启用弹出编辑。

我想添加一个验证,检查(在提交之前)至少一个复选框被选中。如何添加此验证?

所有示例都显示了每个字段的验证,而我想要对整行进行验证。

更新 SaveChanges 对我不起作用,但 save 对我有用。

save:function(e) {
        if(e.model){
                    var selected = false;
                    for (var key in e.model) {
          if (e.model.hasOwnProperty(key)) {
                        if(typeof e.model[key] == "boolean"){
                          if(e.model[key]){
                            selected = true;                                                                         
                            break;
                          }
                        }
                      }
                    } 
                    if(!selected){                                                                                                       
                      e.preventDefault();
        }
}               

【问题讨论】:

  • 建议的解决方案有什么运气吗?

标签: kendo-ui kendo-grid


【解决方案1】:

是的,验证不是那么灵活。 选项 1: 点击网格的saveChanges 事件并遍历数据源数据项:

 saveChanges: function(e) {
       var data = yourDatasource.data(); // this.dataSource.data()
       for (var i = 0; i < data.length; i++) {
            if (!IsValid(data[i])) {
                e.preventDefault();
                // don't submit
            }
       }

},

选项 2: 在添加到网格的每个复选框上附加 onclick 事件并计算点击次数。如果您计算的点击次数少于行数,则验证失败。这种验证也将在“saveChanges”事件中处理。

【讨论】:

  • 我根据您的评论添加了 SaveChanges,但它没有被调用。有什么问题?
  • 所以,SaveChanges 不起作用,但 Save 起作用。我接受了你的回答,因为它为我指明了正确的方向。
猜你喜欢
  • 2011-03-13
  • 2015-11-06
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多