我正在使用Struts2 Java应用程序和jquery网格(在jsp中),我(在网格的标题部分)有一个按钮,用于将网格显示的结果导出到excel文件中。 所以我在JSP中使用脚本添加了这个按钮。所以我需要的是禁用按钮并在struts动作完成后重新启用它。 你们会怎么做? 这是我用来添加按钮的代码(感谢提醒我:D)
var $btnExcel = $('#gview_resultGrid > div > #btnExcel');
if(!$btnExcel.length) {
var $a = $('#gview_resultGrid > div > a');
var $newA = $a.clone();
$newA.attr('style', 'right: 25px; padding-top: 2px;');
$newA.attr('id', 'btnExcel');
$newA.children("span").remove();
$newA.append($('<input id="searchForm_exportExcel" type="image" onclick="exportExcelFunc();" src="/project/img/page_white_excel.png" title="<s:text name="project.message.js.button.excelExtraction"/>"/>'));
$newA.insertAfter($a);
}
}
// export excel
function exportExcelFunc() {
$("#searchForm").attr("action", "exportExcel.action");
$("#searchForm").submit();
}
答案 0 :(得分:0)
您必须在AJAX中提交表单才能获得回复。 在提交之前,请将您的按钮设置为禁用。 获得响应后,您的按钮就可以了。
这是这样的:
var formData = $("#myForm").serialize(); //get all data from form
//disable button
$('#gview_resultGrid > div > #btnExcel').prop('disabled', true);
//do the POST thingies
$.ajax({
type: "POST",
url: "url_to_your_struts2_action",
cache: false,
data: formData,
success: function(response){
//do some success stuff...
//enable button
$('#gview_resultGrid > div > #btnExcel').prop('disabled', false);
},
error: function(error){
//do some errorstuff...
//enable button
$('#gview_resultGrid > div > #btnExcel').prop('disabled', false);
}
});