如何在使用JavaScript提交表单后启用按钮

时间:2016-08-29 20:45:35

标签: javascript html

我正在尝试在提交表单后启用按钮。 我可以启用按钮,但我想等待表单完成该过程,然后启用该按钮。我可以使用setTimeout()等待几秒钟,然后启用按钮,但我不想这样做。我希望一旦表单完成它的过程然后启用按钮。我不确定这是否是一个可能的用例。

形式:

<input type=submit id="myButton" class="esignReports" value="Export E-Sign Information" onclick="disableReportButton(), enableReportButton()"/>

JS:

 function disableReportButton() {
    document.getElementById('viewIntegrationReport').submit();
    document.getElementById('myButton').disabled = true;
    document.getElementById('myButton').value = 'Please wait'; 
 }

 function enableReportButton() {
    document.getElementById('myButton').disabled = false;
    document.getElementById('myButton').value = 'Export E-Sign Information'; 
 }

感谢。

2 个答案:

答案 0 :(得分:1)

阻止表单提交事件,然后通过ajax提交,例如。使用jQuery $ .post。使用.done(或$ .ajax中的成功处理程序)来调用您的函数:

$("form").on("submit", function(e){
    e.preventDefault();
    $.post( /* your data here */ )
        .done(function(){
            // do stuff after post
            disableReportButton();
            enableReportButton();
        };
});

使用$ .ajax的示例,使用成功:Submit form via AJAX in jQuery

答案 1 :(得分:0)

在你的app.js(你的脚本文件)中试试这个

$( document ).ready(function() {
    document.getElementById('myButton').hide();
    function enableReportButton(callback) {
        $("form").on("submit", function(e){
           e.preventDefault();
           callback();
        });
    }

    enableReportButton( function() {
        document.getElementById('myButton').show();
    });
}