2016-01-17 2 views
1

У меня есть веб-кнопки формы, как это который служит для выполнения заказа, что пользователь сделал на сайте с помощью PayPal:Ограничение ASP.NET WebForms OnClick событие один раз

<asp:Button style="padding-left:10px !important;" ID="Button1" runat="server" OnClick="Button1_Click" Text="Complete order" /> 

После нажатия кнопки. .. данные заказа сохраняются внутри БД. Теперь моя проблема в том, что, если пользователь запускает событие несколько раз подряд (ни за что не скажу) ... Если они это сделают .. Я получу несколько ошибок ... Итак, мой вопрос здесь в том, как ограничить пользователь может иметь возможность запускать событие on click только один раз ... В следующий раз, когда он пытается щелкнуть его, событие не будет запущено? Есть ли удобный способ сделать это с помощью программирования на стороне сервера/клиента? Возможно через Javascript ??

+1

просто отключите кнопку после первого щелчка! В конце 'Button1_Click' напишите' Button1.Enabled = false; ' –

ответ

1

Вы можете сделать это стороне клиента с помощью JQuery «one»

$('#SomeForm').one('submit', function() { 
    $(this).find('input[type="submit"]').attr('disabled','disabled'); 
}); 

Это позволит только кнопка будет нажата один раз. Вы не полагаетесь на это для сценариев оплаты. Вы можете пометить что-то в Session["Clicked"] = true; или аналогично, чтобы убедиться, что он обрабатывается только на стороне сервера.

Смежные вопросы