提交表单上的阻止按钮
Posted
技术标签:
【中文标题】提交表单上的阻止按钮【英文标题】:block button on submit form 【发布时间】:2017-04-05 22:42:20 【问题描述】:尝试使用属性disabled
避免在提交按钮单击时多次提交,但在单击时它只是阻止按钮并且没有任何反应。已尝试将 id
添加到 html.Begin 表单,但单击时会出现服务器应用程序错误,例如:the parameters dictionary contains a null entry for parameter 'id' of non-nullable type System.Int32
@using (Html.BeginForm(MVC.Controller.MethodName(), FormMethod.Post, new id = "submitFormId" ))
<button class="btn btn-w-m btn-primary" type="button" id="submitButtonId" value="AddSmth" onclick="return validateForm(event)">
<i class="fa fa-plus"></i> Add
</button>
还有js:
$("#submitButtonId").attr("disabled",true);
$('#submitFormId').submit();
【问题讨论】:
***.com/questions/926816/… @mplungjan 不适合我 【参考方案1】:这是不可能的,因为当您按下按钮时重新加载页面,以便删除禁用属性
如果你想设置这个条件,那么使用 ajax 这样页面就不会重新加载,然后按钮禁用也可以工作
【讨论】:
好吧,我不能使用 ajax,因为我在这个视图上上传文件。我知道 ajax 不能处理文件,对吗? web-development-blog.com/archives/…【参考方案2】:问题是您希望在您的 URL 中有一个 id 参数,但您没有提供一个。例如:
https://example.com/controller/edit/1
^^ missing
缺少 1(id)。
【讨论】:
这很奇怪,因为提交时从方法控制器收到模型,而不是 id【参考方案3】:创建了另一种防止多次单击按钮的方法。刚刚补充:
@ Html.EnableClientValidation();
@ Html.EnableUnobtrusivejavascript();
到视图中,添加全局变量var isSubmited = false;
后,通过:
if (isSubmited) e.PreventDefault();
. . .
if ($('#submitFormId').valid())
isSubmited = true;
【讨论】:
以上是关于提交表单上的阻止按钮的主要内容,如果未能解决你的问题,请参考以下文章