更改按钮文本并在回发期间禁用它

时间:2012-04-26 05:54:29

标签: jquery asp.net asp.net-ajax updatepanel

我在update panel内有一个按钮。

我想要它,所以当用户点击按钮时,Please Wait...文本显示为按钮文本,按钮被禁用,直到回发完成。我写了这段代码:

$('#Button2').on("click", function (e) {
                $("#Button2").val("Please Wait");
                $('#Button2').attr('disabled', 'disabled');
});

问题是当按钮被禁用时,它的事件不会在服务器端引发。我该如何解决这个问题?

5 个答案:

答案 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)

请参阅此链接:Disable button in update panel on async postback