How to disable a button once the form submits?

I am using asp.net webforms; I want to submit a form and keep the button disabled until it gets saved to my database, exactly like Stackoverflow. Any suggestion?

protected void Lb_Save_Click(object sender, EventArgs e)
{
   //disable my button
      //Do a DB insert 
   //enable my button
}

EDIT:

I'll do a client-side validation first so I don't want my button to be disabled there but I want to disable it once the onclick function starts. Hope you all get my point.

Also i would like to do the same for asp:linkbutton but i don't know how firefox behaves for it. As the linkbutton will be rendered as anchor how can i disable it?

Guys you didn't get my question.

How to disable asp:button during postback? (not in jQuery/Javascript)

12
задан animuson 8 March 2015 в 16:18
поделиться

3 ответа

Он отключает его при submit(), он никогда не включает его снова, потому что вы перенаправлены. Однако, если вы хотите выполнить какую-то проверку, вы просто выполните

$("#yourForm").submit(function(e) {
    $("#yourButton").attr('disabled','disabled');
    if (whateverValidation) {
        e.preventDefault();
        $("#yourButton").removeAttr('disabled');
    } 
});
7
ответ дан 2 December 2019 в 21:42
поделиться

Короткий ответ: Javascript.

Подробный ответ:

$('#formid').submit(function () {
     $('#buttonid').hide();
 $('#disabledbuttonimageid').show();
});
2
ответ дан 2 December 2019 в 21:42
поделиться

Хорошо, вот код, который может дать вам представление о том, что делать. Вам понадобится класс DISABLED, который установит соответствующие стили CSS кнопки или что-то еще, чтобы она выглядела отключенной...

JAVA SCRIPT НА СТОРОНЕ КЛИЕНТА

function doRequest(MY_DATA_THAT_I_WANT_TO_SEND)
{
    $.ajax({
       type: "GET",
       url: "saving_page.aspx?data="+MY_DATA_THAT_I_WANT_TO_SEND,
       timeout: 10000,
       beforeSend: function()
       {    
           $("#button").toggleClass("DISSABLED");
       },
       complete: function(XMLHttpRequest, textStatus)
       {
           //Or you can remove success handler and let complete hander enables
           //the button, so it gets enabled if there was an error or there was success
           //$("#button").toggleClass("DISSABLED");         
       },                             
       success: function(data)
       {                                            

           if(data == "OK") $("#button").toggleClass("DISSABLED");                       
       }

     });        
};

SIDE CS

protected void Page_Load(object sender, EventArgs e)
{
    string data = Request.Params.Get("data");
    saveDataToDataBase(data);

    //Sleep some more...
    Thread.Sleep(3000);

    //Send ok
    Response.Write("OK");
    Response.End();
}
0
ответ дан 2 December 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: