繁体   English   中英

提交后C#MVC BeginForm禁用按钮

[英]C# MVC BeginForm Disable Button after Submit

我有C#开头形式的文件上传,看起来像这样:

@using (Html.BeginForm("New", "Post", FormMethod.Post, new { @class = "form-inline", role = "form", id = "newPostForm", enctype = "multipart/form-data" }))
  {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    @Html.HiddenFor(c => c.Post.MinuteID)
    @Html.HiddenFor(c => c.Post.UserID)
    @Html.TextBoxFor(m => m.PostImage, new { type = "file", name = "PostImage", id = "PostImage", accept = "image/*", @class = "file-input imageInput" })
    <button id="postBtn" type="submit" class="btn btn-primary btn-block intbtn">Post&nbsp;</button>
  }

这是一个完美的作品,但是我想添加一些jquery脚本来禁用单击提交按钮时的按钮和字段。 但是这样做之后,提交的表单在击中我的控制器时变为空。 我究竟做错了什么? 这是我的javascript:

$('#postBtn').click(function () {
    $('.imageInput').prop("disabled", true);
    $('#postContent').prop("disabled", true);
    $('#btnText').text('Saving..   ');
    $('#postBtn').prop("disabled", true);
    //$('#newPostForm').submit(); -- i tried adding this and changing my button type to 'button' but still empty form values are submitted
});

我这样做的原因是为了防止多次单击该按钮(多次发布),如何解决此问题,或者是否有更好的方法来防止多次发布,我想提出一些建议。 我想产生加载效果,这就是为什么我更喜欢javascript ..我可以在ajax.post做到这一点,但我听说enctype = multipart/form-data ajax.post用于ajax。 任何帮助表示赞赏。

提交的表单为空,因为要禁用$('#postBtn').click(... 输入,因此无法提交处理程序和禁用的输入 ,这就是为什么在httppost控制器操作中具有空表单的原因。

除了禁用输入外,只需禁用“提交”按钮即可停止多次单击。

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM