加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – ajax – 防止双击提交

发布时间:2020-12-15 23:57:57 所属栏目:asp.Net 来源:网络整理
导读:如何阻止用户双击我的注册表单上的提交按钮,这是一个ajax局部视图? 我很遗憾地问,因为这已经被问过了.我现在找不到一个明确的工作答案.禁用该按钮会阻止提交.使用var javascript clickcount警报return_false不会重置. 环境:asp.net mvc3 视图: 表单显示on
如何阻止用户双击我的注册表单上的提交按钮,这是一个ajax局部视图?

我很遗憾地问,因为这已经被问过了.我现在找不到一个明确的工作答案.禁用该按钮会阻止提交.使用var javascript clickcount警报return_false不会重置.

环境:asp.net mvc3

视图:
表单显示onload:@RenderPage(“_ SignupForm.cshtml”)

提交使用:

@using (Ajax.BeginForm("Index","Signup",null,new AjaxOptions
                {
                    UpdateTargetId = "signupForm",InsertionMode = InsertionMode.Replace,HttpMethod = "POST",LoadingElementId="progress"
                }
     ))

提交控制权:< input type =“submit”value =“注册”/>

SignupController:

public ActionResult Index()
{
    return View();
}

[HttpPost]
public ActionResult Index(SignupModel formvalues)
{
    Thread.Sleep(5000);

    string errors = "";
    if (TryValidateModel(formvalues))
    {
        errors = SignupAPI.Signup(formvalues); //includes custom validation
    }

    if (ModelState.IsValid == false || string.IsNullOrEmpty(errors) == false)
    {
        ViewBag.Errors = errors;
        return PartialView("_SignupForm",formvalues);
    }
    else
        return Redirect(string.Concat("http://localhost/welcome"));
}

解决方法

尝试使用以下脚本:
$('form').submit(function () {
    if ($(this).valid()) {
        $(':submit',this).attr('disabled','disabled');
    }
});

确保在AJAX请求的成功回调中也执行它,以便在表单被DOM中的新内容替换时重新附加提交事件,或者第二次它可能不再有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读