2016-01-21 65 views
0

我正在使用Struts2 Java应用程序和jQuery网格(在jsp中),我有(在网格的标题部分)有一个按钮,用于导出由网格转换成excel文件。 所以我在JSP中使用脚本添加了这个按钮。所以我需要的是禁用按钮,并在struts操作完成时重新启用它。 你们会怎么做? 这里是我用来添加按钮的代码(谢谢你提醒我这一点:d)使用Javascript + Struts2启用/停用按钮

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

嗨,没有任何代码,这将是很难帮助你;) – Yoplaboom

+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); 
    } 
}); 
+0

不幸的是,当使用这个我没有任何文件下载..也许这是由于我没有回应使用这个事实? –