单击按钮一次后禁用该按钮

时间:2010-02-19 04:19:30

标签: javascript asp.net-mvc

在我的应用程序中,我需要在单击按钮后禁用该按钮,以便用户不应多次单击。 APplication是MVC ASP.NET我在普通的asp.net应用程序中完成了这个。 我尝试了下面的代码行,但它没有工作

先谢谢

编辑 我如何使用javascript实现这一点?

9 个答案:

答案 0 :(得分:7)

我发现使用IE8(我不确定其他版本的IE),如果禁用click事件上的按钮,则无法提交表单。所以我提出了另一种解决方案。隐藏单击的按钮并在其中放置一个新的禁用按钮。这是代码:

$().ready(function() {
  $("someButtonSelector").click(function () {
    $(this).hide();
    $(this).after('<input type="button" disabled="disabled" value="' + $(this).val() + '" />');
    return true;
  });
});

答案 1 :(得分:3)

你可以试试这个:

onclick="if (this.getAttribute('clicked') == '1') { return false; } else { this.setAttribute('clicked', '1'); }"

它不会禁用任何内容,只需在首次点击后阻止点击事件。

答案 2 :(得分:2)

<button type="button" onclick="this.disabled = 'disabled';">Click Me!</button>

虽然Button web控件呈现为提交:

<input type="submit" onclick="this.disabled = 'disabled';" value="Submit" />

答案 3 :(得分:0)

@prakash你用jQuery来禁用甚至隐藏按钮吗?

如果您的按钮的ID是“btnClickMe”,那么以下jQuery将完成这项工作。

$("#btnClickMe").hide();

您还可以使用jQuery设置di​​sbaled属性;

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

以上一项未经测试但应该有效。

答案 4 :(得分:0)

我发现如果你禁用甚至删除按钮或输入元素它将停止回调到服务器,最简单的方法是处理这个是hide(),因为你没有删除输入按钮的功能/无论

    $('input_selector').click(function () {
      $(this).hide(200/whatever);
      $(this).before('<p>Waiting for server to respond?!?</p><br/>')
    });

因为它是一个隐藏,所以br是为了确保p标签位于它之上。 可能有更好的方式,我愿意接受建议。

答案 5 :(得分:0)

这也很好用,而且很容易理解:

var myButton = $('input:submit');
var waitMessage = 'wait please...';
myButton.click(function() {
    if (bottone.val() == waitMessage) {
        return false;
    };
    myButton.val(waitMessage);
    console.log('iClicked'); // this line is for testing only, it can be removed.
});

答案 6 :(得分:0)

这是我调用MVC操作然后禁用自身的按钮之一:

<button  class="btn blue pull-right" onclick="location.href='@Url.Action("Index", "GetData", new { page = Model.PageNumber + 1, sortOrder = Model.CurrentSort, fromDate = Model.FromDateParam, toDate = Model.ToDateParam, terminatingpoint = Model.TerminationPointParam, SurecallNo = Model.SurecallNoParm, CallerID = Model.CallerIDParm, outcome = Model.OutcomeParm, pagesize = Model.PageSize })';this.disabled = 'disabled'" >Next ></button>

答案 7 :(得分:0)

var but = 1;
function f() {
    if(but == 1) {
        alert("Hello World!");
        but = 0;
    }
}

希望它有所帮助。

答案 8 :(得分:0)

这将有效:

OnClientClick="if (this.getAttribute('clicked') == '1') {
    return false; 
} else { 
    this.setAttribute('clicked', '1'); 
}"