我在update panel
内有一个按钮。
我想要它,所以当用户点击按钮时,Please Wait...
文本显示为按钮文本,按钮被禁用,直到回发完成。我写了这段代码:
$('#Button2').on("click", function (e) {
$("#Button2").val("Please Wait");
$('#Button2').attr('disabled', 'disabled');
});
问题是当按钮被禁用时,它的事件不会在服务器端引发。我该如何解决这个问题?
答案 0 :(得分:4)
您是否正在使用jQuery.ajax函数来触发服务器调用?如果是,则按钮文本更改并在“beforeSend”键中禁用。
$.ajax({
.....
beforeSend: function(){
$("#Button2").val("Please Wait");
$('#Button2').attr('disabled', 'disabled');
}
.....
});
答案 1 :(得分:1)
$('#Button2').on("click", function (e) {
$("#Button2").text("Please Wait");
$('#Button2').attr('disabled', 'disabled');
//your ajax function here
$.ajax({
url:'your url',
data : ({/*data to send***/ }),
method : 'POST',
success: function(msg){
$('#Button2').removeAttr('disabled');
}
});
//end ajax
});
答案 2 :(得分:1)
您可以在jQuery中使用.attr和.html函数。
$('#btn').click(function(){
$(this).html('Saving...'); //this changes the html to Saving...
$(this).attr('disabled', true); //this will disable the button onclick
});
以下是一个示例小提琴:http://jsfiddle.net/stan255/cpLqK/1/
希望这有帮助。
答案 3 :(得分:0)
在onClick函数中,首先尝试进行ajax调用,然后禁用该按钮。由于它是异步调用,因此下一行脚本应在调用时禁用该按钮。在通话结束后,您可以重新启用按钮。
答案 4 :(得分:0)
你应该在禁用按钮后调用服务器事件。为此你应该使用ClientScript.GetPostBackEventReference(bt1, null)