Widziałem inne rozwiązania, takie jak this, które są dość proste, ale co, jeśli funkcja javascript ma więcej niż tylko confirm('sure?');
? Nigdy nie wiem, kiedy zwróci bool.Najlepszy sposób przechwytywania odsuwania przycisku od przycisku
Więc zdecydowaliśmy się wdrożyć wszystkie moje ASP.NET przyciski tak:
<button id="btnDelete" name="btnDelete" class="btn">Delete</button>
<asp:Button ID="_btnDelete" runat="server" OnClick="_btnDelete_Click" style="display:none;" />
$('#btnDelete').click(function (e) {
$.blockUI({ message: $('#divConfirmDeleteModal'), overlayCSS: { cursor: 'default' }, css: { cursor: 'default' }, baseZ: 5555 });
return false;
});
$('#btnDeleteYes').click(function() {
$('#<%=_btnDelete.ClientID%>').trigger('click');
});
$('#<%=_btnDelete.ClientID%>').click(function (e) {
// the delay happens here. if i put an alert here, it fires,
// but then the page just loads until eventually the method gets called
<%= ClientScript.GetPostBackEventReference(_btnDelete, string.Empty) %>;
});
..i to działa dobrze przez jakiś czas aż do teraz. Występują problemy w IE (nawet wersja 10) - _btnDelete_Click
zajmie do 2 minut, aby zostać wywołanym po kliknięciu przycisku, który ostatecznie wyzwala.
Czuje się zbyt hacky i zastanawiałem się, czy istnieje lepsze podejście.
edit:here jest kolejnym „poprawny” sposób to zrobić, ale chcę, aby móc korzystać z bardziej wyszukane okno modalne i mieć to powrót prawdziwego na „tak” kliknij, zamiast okna natywną potwierdzić przeglądarce .
Edit2: Przypuszczam co pytam, czy istnieje sposób, aby powrócić bool dla funkcji OnClientClick że nie więcej niż jedna rzecz
Dlaczego nie obsługiwać tego serwera? –
Co masz na myśli? Z ClientScript.RegisterStartupScript? Chcę to obsłużyć po stronie klienta. – user982119
Nie można polegać na JavaScript, zwłaszcza jeśli jest to strona publiczna, a jeśli JavaScript jest wyłączony lub używa przeglądarki mobilnej ze złym wsparciem JavaScript? Co próbujesz osiągnąć? –