仅使用javascript

时间:2015-09-09 05:58:41

标签: javascript jquery

我需要在点击按钮后停用它,这样用户就无法多次点击它。 (我的应用程序是用MVC ASP.NET编写的,我在普通的ASP.NET应用程序中完成了这个。)

我尝试使用JavaScript和jQuery,但它无法正常工作。该按钮被禁用但表单未提交。

jQuery的:

$("#ClickMe").attr("disabled", "disabled"); 

JavaScript的:

function DisableNextButton(btnId) {
    document.getElementById(btnId).disabled = 'true';
}

这两种方法都很有效,但现在表格不会提交。

2 个答案:

答案 0 :(得分:0)

jQuery现在具有.one()功能,可以将任何给定事件(例如"提交")限制为一次出现

示例:

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

此代码将允许您提交表单一次,然后禁用该按钮。将find()函数中的选择器更改为您要禁用的任何按钮。

注意:根据Francisco Goldenstein的说法,我已将选择器更改为要提交的表单和事件类型。这允许您从任何地方(按钮以外的位置)提交表单,同时仍然禁用提交时的按钮。

注2:每个gorelog,使用attr('disabled','disabled')会阻止您的表单发送提交按钮的值。如果您想传递按钮值,请改用attr('onclick','this.style.opacity = "0.6"; return false;')

DEMO page

答案 1 :(得分:0)

var button = $('<button>Click Me</button>');

button.clicked = false;

$('body').append(button);

button.click(function(){
  
  if(button.clicked) return;
  button.clicked = true;
  button.prop('disabled', true);
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>