单击后使按钮只读

时间:2017-11-21 12:34:17

标签: javascript jquery html spring forms

所以我有一个带有多个按钮的表单,每个按钮在控制器中都有一个Request映射。

所以我想停止双重提交表单,但是我无法在点击后禁用该按钮,因为控制器无法获取所需的信息以了解该怎么做。 这是我得到的错误:

org.springframework.web.bind.UnsatisfiedServletRequestParameterException: Parameter conditions "update" OR "verify" OR "reject" OR "updateCard" OR "approve" OR "withdraw" OR "updateStatusToReject" OR "updateStatusToApprove" not met for actual request parameters:

所以我觉得点击之后只需按钮即可修复此问题。

到目前为止,我已经尝试了这一点,但它仍允许双重提交。

 $('.sendButton').click(function(){
        $(this).prop('readonly', true);
    });



<c:if test="${requestForm.status == 'R'}">
                <input type="submit" name="updateStatusToApprove" value="Update To Approved" tabindex="7"
                       class="sendButton" id="appealA"/>

            </c:if>
            <c:if test="${requestForm.status == 'A' || requestForm.status == 'AA'}">
                <input type="submit" name="updateStatusToReject" value="Update To Rejected" tabindex="8"
                       class="sendButton" id="appealR"/>

如何在不实际禁用按钮的情况下停止双重提交的任何想法。

2 个答案:

答案 0 :(得分:5)

输入 类型 button并指定一个click处理程序,只使用one执行一次

$('.sendButton').one( "click", function(){
    //submit the form
    $(this).closest('form').submit();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" name="updateStatusToReject" value="Update To Rejected" tabindex="8" class="sendButton" id="appealR"/>

答案 1 :(得分:0)

readonly 元素不可编辑,但会在相应的表单提交时发送。而已停用元素不可编辑,并且不会在提交时发送。 如果您使用 jquery版本1.6 +,那么

 $('.sendButton').click(function(){
        $(this).prop('disabled', true);
    });

或者

 $('.sendButton').click(function(){
        $(this).attr('disabled','disabled');`
    });