关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 11016|回复: 0

jeecg formvalid 的回调以及刷新

[复制链接]
发表于 2013-11-24 23:10:52 | 显示全部楼层 |阅读模式
form 基本上是大家最常用,而且add是使用的最多
要看这个就要查看生成的js是什么样子的
$(function() {
    $("#formobj").Validform({tiptype: 4,btnSubmit: "#btn_sub",btnReset: "#btn_reset",ajaxPost: true,usePlugin: {passwordstrength: {minLen: 6,maxLen: 18,trigger: function(obj, error) {
                    if (error) {
                        obj.parent().next().find(".Validform_checktip").show();
                        obj.find(".passwordStrength").hide();
                    } else {
                        $(".passwordStrength").show();
                        obj.parent().next().find(".Validform_checktip").hide();
                    }
                }}},callback: function(data) {
            var win = frameElement.api.opener;
            if (data.success == true) {
                frameElement.api.close();
                win.tip(data.msg);
            } else {
                if (data.responseText == '' || data.responseText == undefined) {
                    $.messager.alert('错误', data.msg);
                } else {
                    try {
                        var emsg = data.responseText.substring(data.responseText.indexOf('错误描述'), data.responseText.indexOf('错误信息'));
                        $.messager.alert('错误', emsg);
                    } catch (ex) {
                        $.messager.alert('错误', data.responseText + "");
                    }
                }
                return false;
            }
            win.reloadTable();
        }});
});

这个是生成的代码,当如果你修改了代码生成器参数之后就不是这样的了,例如我们需要自己的回调函数
$(function() {
    $("#formobj").Validform({tiptype: 4,btnSubmit: "#btn_sub",btnReset: "#btn_reset",ajaxPost: true,callback: function(data) {
            test(data);
        }});
});

这样回调是自己的,所以比较简单
首先我们看看btnSubmit 这个也就是提交函数,在Validform如何提交的
jeecg中有开发版大家可以看看,我们把这段拿出来

settings.btnSubmit && $this.find(settings.btnSubmit).bind("click",function(){
    $this.trigger("submit");
    return false;
   });

可以发现绑定的click事件,但是真实触发的大家比较常见的submit事件,但是Validform使用了自己的submit
然后使用ajax提交了表单,这里才有了回调


1.回调
callback 基本都是dialog 这种方式
想使用自己回调,看下源码就知道


要像java一样使用@Override 这种(这个确实有点.......出人意料)多看看源码还是好的
但是从上面生成代码我们就可以看出,默认的回调函数处理了不少东西
var win = frameElement.api.opener;//获取父窗口

然后关闭,然后刷新主表单
win.reloadTable();

如果我们自己的回调,记得也进行处理哈


2.刷新表单
刷新表单确实属于疑难杂症啊
reloadTable 其实还是调用的$("#id").datagrid('reload');
但是因为经常id获取不到或者其他原因照成刷新不成功
如果实在解决不了,就自己使用回调,然后刷新


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表