我使用的部分视图如下: -
@using (Ajax.BeginForm("UpdateStatus", "Controller", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "divCurrent",
OnSuccess = "cleanUp",
OnFailure = "statusUpdateFailure"
}))
{
<input id="statusChange" type="submit" value="Submit" class="button" />
}
此外,点击提交按钮,我想要一个处理程序,如一次单击它设置为禁用几秒钟,所以用户不能再次点击它,我这样做如下: -
$('#statusChange').click( function () {
temporarilyDisableButton($this, 60000);
});
但是在 chrome 中我遇到的问题是ajax表单提交无效。只有禁用该按钮才能正常工作。
我想一起执行它们,或者如果有其他方法我想使用它。
请建议。
由于
答案 0 :(得分:0)
我遇到了类似的问题,如果禁用提交按钮,某些浏览器将无法提交表单。您在实际触发提交事件之前完全禁用该按钮。要解决此问题,您可以在禁用按钮之前提交表单或暂时隐藏按钮而不是禁用它。
您必须通过传递Html选项new { id = "myAjaxForm" }
来为Ajax表单提供客户端ID。
@using (Ajax.BeginForm("UpdateStatus", "Controller", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "divCurrent",
OnSuccess = "cleanUp",
OnFailure = "statusUpdateFailure"
}, new { id = "myAjaxForm" } ))
然后您可以点击
执行此操作$('#statusChange').click( function () {
$('#myAjaxForm').submit();
temporarilyDisableButton($this, 60000);
return false; //stop the button from performing its default action
}
或者,您可以完全摆脱点击事件并将事件绑定到submit
函数:
$('#myAjaxForm').submit(function(){
temporarilyDisableButton($('#statusChange'), 60000);
});
有很多方法可以做到这一点,但基本的想法是你不想在它有机会触发事件之前禁用提交按钮。