jeecg formvalid 的回调以及刷新
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 这种方式
想使用自己回调,看下源码就知道http://note.youdao.com/yws/public/resource/9de4d60b5b9e3c2c8f9cd8a25e44758f/B5BBF87F7F5748FF9A7BB1CDB42E4D8C
要像java一样使用@Override 这种(这个确实有点.......出人意料)多看看源码还是好的
但是从上面生成代码我们就可以看出,默认的回调函数处理了不少东西
var win = frameElement.api.opener;//获取父窗口
然后关闭,然后刷新主表单
win.reloadTable();
如果我们自己的回调,记得也进行处理哈
2.刷新表单
刷新表单确实属于疑难杂症啊
reloadTable 其实还是调用的$("#id").datagrid('reload');
但是因为经常id获取不到或者其他原因照成刷新不成功
如果实在解决不了,就自己使用回调,然后刷新
页:
[1]