Оповещение об отправке после подтверждения asp. net кнопка - PullRequest
0 голосов
/ 30 января 2020

У меня есть странная вещь с предупреждением javascript в моем приложении asp. net. У меня есть кнопка, которую нужно удалить пользователя из базы данных. Но у пользователя могут быть документы, а также страховые полисы. Поэтому я хочу включить javascript предупреждение, если у пользователя есть какие-либо документы или политика. В этом предупреждении будет указано: «Вам необходимо удалить документы и / или политики. Но если у пользователя нет ни одного из них, необходимо активировать окно подтверждения, где вам нужно выбрать, хотите ли вы удалить или нет. Так что мой .aspx-код выглядит следующим образом

<asp:Button ID="btnDelete" class="btn btn-danger" runat="server" Text="Izbriši" OnClick="btnDelete_Click" 
                                                                onClientClick="check()">
                                                            </asp:Button>

и функция check ()

function check() {
            var totalRows = $("#<%=gvDocuments.ClientID %> tr").length-1;
            var totalRows1 = $("#<%=gvPolice.ClientID %> tr").length-1;
            if (totalRows > 0 || totalRows1 > 0) {
                alert('Izbrišite ' + totalRows + ' dokumenta i ' + totalRows1 + ' polica klijenta prije nego ga možete izbrisati!');
//Here I check and count is there any documents or policies
                return false;
            }
            else {
                var r = confirm('Jeste li sigurni da želite izbrisati klijenta?')
                if (r == true) {
                    return true;
                }
                else {
                    return false;
                }
            }
        }

Так что мой блок подтверждения работает. Вы нажимаете OK и удаляете или отменяете, и это возвращает ложь. Но я не знаю, когда пользователь нажимает ОК на alert , он запускает обратную передачу и удаляет пользователя, чтобы документы и все оставалось в живых или, насколько я понимаю, возвращает true? Спасибо, С уважением

1 Ответ

1 голос
/ 30 января 2020

Проверьте вашу кнопку в браузере, и вы увидите, что Asp. net просто выполнит свой doPostback javascript (в строке или при отправке формы) сразу после вашего кода onclientclick!

Таким образом, ваш вызов функции вернет true / false, затем doPostback все равно выполнится.

Что вам нужно сделать, это обработать возврат вашей функции в строке так:

onClientClick="if(check() === false){return false;}"

Только вернув false здесь, вы прервете javascript, и постбэк не сработает:)

...