jQuery MiniUI

 找回密码
 立即注册
查看: 3156|回复: 6
打印 上一主题 下一主题

onCellValidation 验证A的时间大于B的时间 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2015-6-9 17:28:45 |只看该作者 |倒序浏览
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;
                                }
                        }
                }          
          }


Rank: 8Rank: 8

沙发
发表于 2015-6-10 10:04:10 |只看该作者
调用一下grid.validate(),对整个表格进行一次验证

Rank: 3Rank: 3

板凳
发表于 2015-6-10 10:15:33 |只看该作者
felt 发表于 2015-6-10 10:04
调用一下grid.validate(),对整个表格进行一次验证

我过在e.isValid = true 后加grid.Validate,会报错

Rank: 3Rank: 3

地板
发表于 2015-6-10 10:21:12 |只看该作者
felt 发表于 2015-6-10 10:04
调用一下grid.validate(),对整个表格进行一次验证

Stack overflow at line:13 ,会报这样的错

Rank: 8Rank: 8

5#
发表于 2015-6-10 10:25:52 |只看该作者
mini3000 发表于 2015-6-10 10:21
Stack overflow at line:13 ,会报这样的错

在外部调用,你在验证方法里调用验证,肯定会死循环

Rank: 3Rank: 3

6#
发表于 2015-6-10 10:29:14 |只看该作者
felt 发表于 2015-6-10 10:25
在外部调用,你在验证方法里调用验证,肯定会死循环

但是这样的话,我点击了A修改,A的验证消失了,B列的验证还是红色啊,但是现在其实是正确的了

Rank: 3Rank: 3

7#
发表于 2015-6-10 11:00:53 |只看该作者
felt 发表于 2015-6-10 10:25
在外部调用,你在验证方法里调用验证,肯定会死循环

问题已解决

Archiver|普加软件

GMT+8, 2024-9-29 19:25 , Processed in 1.056115 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部