在我的应用程序中,我需要在单击按钮后禁用该按钮,以便用户不应多次单击。 APplication是MVC ASP.NET我在普通的asp.net应用程序中完成了这个。 我尝试了下面的代码行,但它没有工作
先谢谢
编辑 我如何使用javascript实现这一点?
答案 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设置disbaled属性;
$("#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');
}"