如何美元MVC3 p $ pvent多个职位? [英] How to prevent multiple posts on MVC3?

查看:89
本文介绍了如何美元MVC3 p $ pvent多个职位?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

一个用户希望在自己的博客后,他填​​补了领域,并单击提交


  
  

该网站运行缓慢,他再次点击,并又一次,又一次。


  
  

据终于得救了,但现在他检查他的帖子,看到 4 的帖子。


我怎样才能美元,发生2 P $ pvent这个如果用户点击提交一次,我想无能为力下一个点击或中止previous ,并开始一个新的职位,两者更有意义或建议。

在与表单

  @using(Ajax.BeginForm(...))
{
}


解决方案

实现这一目标的最简单方法是禁用后点击提交按钮。

添加以下JavaScript(jQuery的),以您的观点:

  $(函数(){
    $(输入[类型=提交]')。点击(函数(){
        $(本).attr('残疾','禁用');
    });
});

记住,使Ajax请求按钮后,如果完成neccessary:

  $('输入[类型=提交]')removeAttr(禁用)。

更新:

这是更好地禁用表单提交按钮提交事件处理程序,因为用户可以通过pressing提交表单输入按钮:

  $(函数(){
    $('形式')。提交(函数(){
        $(输入[类型=提交]',这一点).attr('残疾','禁用');
    });
});

A user wants to post in his blog, he fills the field and click submit.

The site is running slow, he clicks again, and again, and again.

It was finally saved, but now he check his posts and sees 4 posts.

How can I prevent this from happening? If the user click to submit once I want to do nothing for the next clicks or abort previous and start a new post, whichever makes more sense or is recommended.

In a form with

@using (Ajax.BeginForm(...))
{
}

解决方案

The easiest way to achieve this is to disable submit buttons after click.

Add the following javascript (jQuery) to your view:

$(function () {
    $('input[type="submit"]').click(function() {
        $(this).attr('disabled', 'disabled');
    });
});

Remember to enable buttons after ajax request complete if neccessary:

$('input[type="submit"]').removeAttr('disabled');

UPDATE:

It's better to disable the submit button in forms submit event handler, because an user can submit the form by pressing enter button:

$(function () {
    $('form').submit(function() {
        $('input[type="submit"]', this).attr('disabled', 'disabled');
    });
});

这篇关于如何美元MVC3 p $ pvent多个职位?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆