1. 我用的easyui技术,表单提交用的ajax。在前端处理控制的思想如下:
点击保存后,马上让保存按钮disable掉,即灰显。如果ajax提交完毕后,并得到返回结果(不管结果是成功保存还是保存失败,我们不用管,只要有返回消息),我们马上让保存按钮enable掉,重新恢复作用。
代码
var addStores = $('<div/>').dialog(
{
title : '添加门店',
href : '${pageContext.request.contextPath}/admin/storesAdd.jsp',
width : 615,
height : 365,
modal : true,
buttons : [ {
text : '保存',
handler : function() {
var button = this;
$('#admin_stores_addForm').form('submit',{
url : '${pageContext.request.contextPath}/storesAction!add.action',
onSubmit: function(){ //对表单进行校验,如果校验通过,则disable掉保存按钮,如果没有通过,则不用管。
var isValid = $(this).form('validate');
if (!isValid){
console.info("==========================="+isValid)//$.messager.progress('close');
return isValid;
}else {
console.info("111111111111111111111111111111"+isValid);
$(button).linkbutton('disable');
return isValid; // return false will stop the form submission
}
},
success : function(r) {
$(button).linkbutton('enable'); //提交完,并且处理完毕返回消息后,马上恢复掉保存按钮,enable
obj = $.parseJSON(r);
if (obj.success) {
addStores.dialog('close');
storesdatagrid.datagrid('reload');
}
$.messager.show({
title : '提示',
msg : obj.msg
});
}
});
}
} ],
onClose : function() {
$(this).dialog('destroy');
},
onLoad : function() {
}
});
2. 本来还有个方法,但是我没有尝试,不晓得有没有用,先在这里记一笔,就是用ajax的最原始的处理方法,不是像上面的那种,进行封装过。
jQuery.ajax([options])
async Boolean
(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
3.$.ajax({
type:'POST',
url:url,
data:obj,
dataType:'json',
beforeSend: function () {
$.messager.progress({
title: '提示',
msg: '文件上传中,请稍候……',
text: ''
});
},
complete: function () {
$.messager.progress('close');
},
success:function(data){
$("#uploadHtmlUrl").val(data.fileUrl);
$("#uploadHtml").attr("src", data.fileUrl);
}
});