jQuery MiniUI

标题: onCellValidation 验证A的时间大于B的时间 [打印本页]

作者: mini3000    时间: 2015-6-9 17:28:45     标题: onCellValidation 验证A的时间大于B的时间

onCellValidation 验证A的时间大于B的时间,当A》B时,A的isValid为false,那当保存的时候又验证一次,B的isValid为false,当我把A修改了,A<B了,A的isValid为true,我怎么样把B的isValid改为true?




          //编辑日期触发
          function onCellValidation(e) {
                var record = e.record;  
                if (e.field == "validDate" || e.field == "invalidDate") {
                        if (record.validDate != "" && record.invalidDate != "") {
                                var date1 = "";
                                var date2 = "";
                                        var validDate = record.validDate.toString();
                                        var invalidDate = record.invalidDate.toString();
                        var month = new Array();
                        month["Jan"] = "0"+1; month["Feb"] = "0"+2; month["Mar"] = "0"+3; month["Apr"] = "0"+4;
                        month["May"] = "0"+5; month["Jun"] = "0"+6; month["Jul"] = "0"+7; month["Aug"] = "0"+8;
                        month["Sep"] = "0"+9; month["Oct"] = 10; month["Nov"] = 11; month["Dec"] = 12;
                                        if(validDate.indexOf("-") != -1){
                                                date1 = validDate.replace(/\-/g,'/');
                                        }else{
                                                date1 = validDate + "";
                                                var str1 = date1.split(" ");
                                                date1 = (str1[5] + "-" + month[str1[1]] + "-" + str1[2]).replace(/\-/g,'/');
                                        }
                                        if(invalidDate.indexOf("-") != -1){
                                                date2 = invalidDate.replace(/\-/g,'/');
                                        }else{
                                                date2 = invalidDate + "";
                                                var str2 = date2.split(" ");
                                                date2 = (str2[5] + "-" + month[str2[1]] + "-" + str2[2]).replace(/\-/g,'/');
                                        }

                                if (date1 >= date2 ) {
                                        alert(date1)
                                        alert(date2)
                                        e.isValid = false;
                                        e.errorText = "有效期开始不能大于有效期结束";
                                }else{
                                        e.isValid = true;
                                }
                        }
                }          
          }



作者: felt    时间: 2015-6-10 10:04:10

调用一下grid.validate(),对整个表格进行一次验证
作者: mini3000    时间: 2015-6-10 10:15:33

felt 发表于 2015-6-10 10:04
调用一下grid.validate(),对整个表格进行一次验证

我过在e.isValid = true 后加grid.Validate,会报错
作者: mini3000    时间: 2015-6-10 10:21:12

felt 发表于 2015-6-10 10:04
调用一下grid.validate(),对整个表格进行一次验证

Stack overflow at line:13 ,会报这样的错
作者: felt    时间: 2015-6-10 10:25:52

mini3000 发表于 2015-6-10 10:21
Stack overflow at line:13 ,会报这样的错

在外部调用,你在验证方法里调用验证,肯定会死循环
作者: mini3000    时间: 2015-6-10 10:29:14

felt 发表于 2015-6-10 10:25
在外部调用,你在验证方法里调用验证,肯定会死循环

但是这样的话,我点击了A修改,A的验证消失了,B列的验证还是红色啊,但是现在其实是正确的了
作者: mini3000    时间: 2015-6-10 11:00:53

felt 发表于 2015-6-10 10:25
在外部调用,你在验证方法里调用验证,肯定会死循环

问题已解决




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2