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

估计是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');
		}
	});
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值