Как отключить кнопку после отправки формы?
Я использую asp.net webforms; Я хочу отправить форму и отключить кнопку, пока она не будет сохранена в моей базе данных, точно так же, как Stackoverflow. Любое предложение?
protected void Lb_Save_Click(object sender, EventArgs e)
{
//disable my button
//Do a DB insert
//enable my button
}
EDIT:
Сначала я сделаю проверку на стороне клиента, поэтому я не хочу, чтобы моя кнопка была отключена, но я хочу отключить ее после запуска функции onclick. Надеюсь, вы все поняли.
Также я хотел бы сделать то же самое для asp: linkbutton, но я не знаю, как работает firefox для него. Как linkbutton будет отображаться как якорь, как я могу отключить его?
Ребята, вы не получили мой вопрос.
Как отключить asp: кнопку во время обратной передачи? (не в jQuery/Javascript)
Ответы
Ответ 1
Он отключает его на submit()
, он никогда не активирует его снова, потому что вы перенаправлены. Однако, если вы хотите сделать какую-то проверку, вы просто выполните
$("#yourForm").submit(function(e) {
$("#yourButton").attr('disabled','disabled');
if (whateverValidation) {
e.preventDefault();
$("#yourButton").removeAttr('disabled');
}
});
Ответ 2
Короткий ответ: Javascript.
Дольше ответ:
$('#formid').submit(function () {
$('#buttonid').hide();
$('#disabledbuttonimageid').show();
});
Ответ 3
Как? Это волшебство.
Теперь, если вы не хотите javascript:
- При обратной передаче отключите кнопку.
- Не выполняйте настоящую работу, но задайте переменную Session, чтобы указать, какая работа необходима.
- Установить метатег для принудительного немедленного обновления.
- Возврат - браузер немедленно обновит страницу.
- Когда вы получаете запрос сейчас, вы проверяете Session var и выполняете работу.
Могут быть другие способы, но, откровенно говоря, все они гониг, чтобы быть странным, почему бы вам не JavaScript?
Ответ 4
Единственный способ сделать это с помощью веб-форм (а это не mvc) - скрыть исходную кнопку и заменить ее изображением отключенной кнопки или другой кнопки, которая отключена. Если вы на самом деле отключите кнопку .net JavaScript не выполнит отправку.
(Да, я знаю, что вы можете "взломать".net JavaScript, но на самом деле, это лучше?)
JavaScript, чтобы сделать это, просто, как только вы знаете, что вам нужно сделать - если вы хотите увидеть какой-то код, я должен его выкопать - просто спросите в комментариях.
NB: MVC должен быть таким же простым, как код в других ответах, которые просто отключают кнопку перед вызовом ajax. SO использует MVC, чтобы у них не было проблем, с которыми вы столкнулись.
Ответ 5
Хорошо, есть код, который может дать вам представление о том, что делать. Вам понадобится класс 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");
}
});
};
СЕРВЕРНАЯ СТОРОНА 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();
}
Ответ 6
Пожалуйста, попробуйте следующий код.
JQuery ( '# mybuttonid'). нажмите (функция() {
JQuery (это).attr( 'инвалиды', инвалиды ");
});