jQuery MiniUI

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

grid 行编辑模式下,验证唯一性的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-10-23 15:06:22 |只看该作者 |正序浏览
本帖最后由 jipinkuang 于 2013-10-23 15:07 编辑

          function onCellValidation(e) {
                  var record = e.record;
                  if (record._state == "added"){
                  if (e.field == "code") {
                          e.isValid = remoteValidCode(e.value);
                          if (!e.isValid) e.errorText = "重复的编码!";
                          //alert(e.isValid); //这里可以得到正确的 true 或 false;
                  }
                  }
          }
         
          function remoteValidCode(value){
                  isValid = false;
                  $.ajax({
                          url: bootPATH + "../data/bas_plib.serv.php?method=RemoteValidCode",
                          cache: false,
                          async:false,
                          data: { code: value },
                          success: function (text) {
                                  isValid = text;
                          }
                  });
                  return isValid;
          }

          function save(){                  grid.validate();
                  if (grid.isValid() == false) {
                          //alert("请校验输入单元格内容");
                          var error = grid.getCellErrors()[0];
                          grid.beginEditCell(error.record, error.column);
                          return;
                  }
                 var data = grid.getChanges();
                 var json = mini.encode(data);  
                  grid.loading("保存中,请稍后......");
                 $.ajax({

但是当我点击保存时,操作被阻止,光标定位到code列



Rank: 2

5#
发表于 2013-10-23 17:00:00 |只看该作者
          function onCellValidation(e) {                  
                  var record = e.record;
                  if (record._state == "added" || record._state == "modified"){
                          if (e.field == "code") {
                                  var isValid = remoteValidCode(record._state, record.id, e.value);
                                  //alert (isValid)
                                  if (isValid==true) {
                                          e.isValid = true;
                                  } else {
                                          e.isValid = false;
                                          e.errorText = "重复的编码!"
                                  };                                  
                          }
                  }
          }

这样写就可以了,没搞明白为什么

Rank: 8Rank: 8

地板
发表于 2013-10-23 16:20:39 |只看该作者
jipinkuang 发表于 2013-10-23 16:01
这个怎么看?

但是我alert出来的isvalid值是 正确的

JS调试,在你需要断点的地方打个debugger

Rank: 2

板凳
发表于 2013-10-23 16:01:18 |只看该作者
factory 发表于 2013-10-23 15:58
那你看看为什么表格的isValid() == false

这个怎么看?

但是我alert出来的isvalid值是 正确的

Rank: 8Rank: 8

沙发
发表于 2013-10-23 15:58:42 |只看该作者
那你看看为什么表格的isValid() == false

Archiver|普加软件

GMT+8, 2024-9-20 02:34 , Processed in 1.060201 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部