关于使用Artery插件的一些积累2

来源:互联网 发布:淘宝的营销词 编辑:程序博客网 时间:2024/06/01 10:44

估计是Artery本身的bug,在表单没有通过验证的时候,通过快速的点击保存按钮也能将数据保存到数据库中(IE8不会出现这样的问题,IE8以上的版本就出现问题了),于是使用这样的办法:

在from中添加一个链接,值设为false,然后在验证”用户名“是否重复的时候,如果重复就将链接的值设为false,不重复就设置为true。

这样在执行保存方法的时候进行判断,如果链接的值为true就正常逻辑来提交表单,如果为false就直接return;这样就不提交表单了。

验证用户名的方法:

function userLoginId_onValidClient(rc, value,parentId,parentType) {    rc.asyn = false;    rc.put('loginId', value);    rc.put('parentId', parentId);    rc.put('parentType', parentType);    rc.send();    var result = rc.getResult();    if (!Ext.isTrue(result)) {    document.getElementById("htmlAreae29a2").innerHTML="false";        return "已经存在值为“" + value + "”的登录名称!";    }    else     {    document.getElementById("htmlAreae29a2").innerHTML="true";    }}
保存的方法:

function addUserBtn_onClickClient (rc){var html =document.getElementById("htmlAreae29a2").innerHTML;//如果“用户名”验证不通过(貌似是Artery的一个bug),则不提交表单if(html=="false"){//如果是update状态则要这么判断:html=="false" && rtt!='update'return;}Artery.get("formArea").submit(function(result) {if (result.rs == "ok") {Artery.showTip("新建用户成功!",'blankPanel6b415');var dt = Artery.getWin().get("dynamicNav");var node = dt.getClickNode();// 当前节点可能是叶子节点,不能reload方法var parentNode = node.parentNode;// 刷新组织机构树parentNode.reload();// 定位更新的节点rc.put("userId", result.id);rc.put("getUserPath", true);rc.send(function(res) {dt.expandNode(res.organPath);});} else  if (result.rs == "photoError"){Artery.showTip("添加失败," + result.photoMsg,'blankPanel6b415');} else {Artery.showTipError("新建用户失败!\n" + result.rs, 'blankPanel6b415');}});}


0 0
原创粉丝点击