0

我只是编程的新手,所以请温柔。

我正在使用 Visual Studio Community 2015 版。我的项目使用标准的 asp.net MVC 5 解决方案模板。我有一个包含创建按钮的视觉工作室脚手架输入表单。

由于双击,我在尝试停止多次提交表单时遇到问题。

几年前,我一直在尝试实施在 stackoverflow 上发布的解决方案,但经过两天的尝试,我没有进一步前进。

解决方案涉及使用以下 jquery 插件(我必须承认我对 java 还不太了解!)

我想要使​​用的这个 jquery 插件代码在下面,来自这个原始帖子

防止在jQuery中重复提交表单

jQuery.fn.preventDoubleSubmission = function() {
  $('input[type="submit"]').data('loading-text', 'Loading...');

  $(this).on('submit',function(e){
    var $form = $(this);

    $('input[type="submit"]', $form).button('loading');

    if ($form.data('submitted') === true) {
      // Previously submitted - don't submit again
      e.preventDefault();
    } else {
      // Mark it so that the next submit can be ignored
      $form.data('submitted', true);
      $form.setFormTimeout();
    }
  });

  // Keep chainability
  return this;
};

jQuery.fn.setFormTimeout = function() {
  var $form = $(this);
  setTimeout(function() {
    $('input[type="submit"]', $form).button('reset');
    alert('Form failed to submit within 30 seconds');
  }, 30000);
};

*/

我遇到的问题是如何在我的项目中部署 jquery 插件,然后当有人单击创建按钮时如何调用它。

我已经尝试将插件直接放在页面视图中,也可以作为脚本文件夹中的 javascript 文件,但似乎仍然无法调用该函数来防止重复提交。

我试图通过使用按钮的 onclick 属性来调用该函数,但无法让它运行。有没有人记得以前的解决方案以及如何在 ASP.NET MVC 5 cshtml 视图按钮单击中实现它?

(我在哪里放置插件代码以及如何从创建按钮调用它)

非常感谢

4

1 回答 1

0

在 jquery 端使用此代码是防止双击

$(document).on('submit', 'form', function () {
        var button = $(this).find('input[type="submit"]');
        setTimeout(function () {
            button.attr('disabled', 'disabled');
        }, 0);
    });

If Not valid post time 您的表单和验证之后

//disabled Multiple Click Event on form
    $(document).on('invalid-form.validate', 'form', function () {
        var button = $(this).find('input[type="submit"]');
        setTimeout(function () {
            button.removeAttr('disabled');
        }, 1);
    });
于 2017-05-30T13:55:47.700 回答