所以我有一个带有多个按钮的表单,每个按钮在控制器中都有一个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"/>
如何在不实际禁用按钮的情况下停止双重提交的任何想法。
答案 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');`
});