使用Javascript + Struts2启用/禁用按钮

时间:2016-01-21 14:58:18

标签: javascript jquery jsp struts2

我正在使用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();
}

1 个答案:

答案 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);
     }
 });