调用表单操作方法,然后在JSP中禁用该按钮

时间:2017-07-12 06:30:27

标签: javascript java jquery jsp servlets

我有一个JSP页面,我在其中创建了一个表单和一个按钮。一旦用户点击提交按钮,表单操作将调用servlet doPost方法并执行业务逻辑。现在我需要禁用提交按钮以防止用户点击该按钮两次,直到我的业务执行完成。 我的JSP页面如下所示

<body>

        <form method="post" action="SubmitJob" id="myForm">
        <table>


                        <td><p>Please use the below button to run the job immediately</p> <br>
                            <div id="runNow">
                            <input type="submit" name="runNow" value="runNow" id="submitBtn">

                            <% out.println(request.getAttribute("status")); %>
                            </div>
                        </td>
                        </tr>
        </table>
    </form>

    </body>

要禁用提交按钮,我使用了jquery并尝试如下

<script>
$(document).ready(function(){
    $('#submitBtn').click(function(){
        // $('form#myForm').submit();
        alert('after form submit');
                                        $('#submitBtn').prop("disabled",true); 
                                         alert('after button disabled');
    });
});
</script>

我面临的问题是,如果禁用按钮,则不会调用表单操作。有人可以建议我,1)如何先调用表单操作然后禁用按钮。 2)如果我的servlet中的业务逻辑完成,如何再次启用提交按钮.3)如何从我的java方法调用servlet doPost方法

2 个答案:

答案 0 :(得分:0)

1)您可以使用$("#myForm").submit();

等其他功能调用您的表单

2)将此代码放入服务器调用中的success函数中:

$('#submitBtn').prop("disabled",true); 

3)您可以使用以下代码:

$.ajax({
            type: "POST",
            url: "",
            contentType: "application/json; charset=utf-8",
            success: function (response) {   
        }
    });

答案 1 :(得分:0)

在您的onclick功能中,您错过了关键步骤:

$("#myForm").submit();

前提是表单标签的action属性应该定义url。 样本如下:

<form action="your url...." method="post" id="myForm">
</form>

此外,您的代码

$('#submitBtn').prop("disabled",true);  

已经确保按钮无法点击两次。