Ajax.BeginForm:加载时禁用按钮

时间:2012-02-23 13:03:33

标签: jquery asp.net-mvc-3

获得了一个有效的AJAX表单:

@using (Ajax.BeginForm(...))

我想在加载结果时禁用该按钮。 如果我用这个:

$("#submit").click(function () { $("#submit").button().attr('disabled', true).addClass('ui-state-disabled'); })

它会禁用该按钮,但是表单不会向控制器发送任何内容。 我该如何解决这个问题? (是的,我几乎不知道如何使用JS)

3 个答案:

答案 0 :(得分:5)

这样可以解决问题:

$(document).ajaxStart(function () {
    $("#submit").prop("disabled", true);
});

然后如果你需要在完成后启用它:

$(document).ajaxStop(function () {
    $("#submit").prop("disabled", false);
});

答案 1 :(得分:2)

使用.ajaxStart禁用该按钮。

答案 2 :(得分:0)

你在这里有什么(...) - > @using (Ajax.BeginForm(...))

考虑使用选项来注册AjaxOptions     @using(Ajax.BeginForm(new AjaxOptions {UpdateTargetId =“result”}))

至少在使用jqery助手

时,你应该选择
beforeSubmit: CallBackToHandleThinksPreSubmit,  // pre-submit callback 
   success: CallBackToHandleThinksPostSubmit// post-submit callback 

我会注册一个回调,让可见性发生变化......

HTH