У меня есть форма, где у меня есть раскрывающийся список и много ярлыков. Когда я выбираю параметр из раскрывающегося списка, он извлекает данные из базы данных, связанные с этой опцией, и заполняет их в поле. Затем у меня есть кнопка удаления. Когда я нажимаю на это, то конкретное выбранное поле из списка будет удалено из базы данных. Для этого перед удалением, когда я нажимаю кнопку «Удалить», он запрашивает диалоговое окно подтверждения всплывающих окон, и когда я нажимаю «ОК», он будет удалять. Для этого я использую приведенный ниже код.Диалог подтверждения ASP.NET не работает во второй раз
JavaScript
<script type = "text/javascript">
function Confirm() {
if (Page_ClientValidate()) {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("You really want to delete the data?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
}
</script>
C#
protected void button_delete_Click(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
// delete data from database
}
}
ASP.NET
<asp:Button ID="button_delete" Visible="false" Text="Delete" runat="server" OnClientClick="Confirm()" OnClick="button_delete_Click" />
Первоначально кнопка удаления является установлен на visible=false
и только после выбора элемента из списка он становится видимым. Это влияет на диалог подтверждения после обратной передачи или что-то еще? Он работает в первый раз, и после того, как я перезагрузите страницу вручную и попробуйте, она работает. Но когда я делаю это непрерывно, не перезагружая страницу, он не будет работать во второй раз. В чем проблема?
Есть ли ошибка в консоли браузера во второй раз? –
вызов функции Confirm() в $ (document) .ready (function() {Confirm()}); и, пожалуйста, проверьте наличие ошибок в консоли браузера –
Когда вы впервые запустите метод confirm(), добавьте скрытое поле в форму. со значением «Да» или «Нет» зависит от выбранного вами выбора. Затем, когда вы запустите метод confirm() второй раз, он добавит другое скрытое поле. Когда дело доходит до backend button_delete_click, Request.Form ["confirm_value"] может быть не таким, которого вы ожидаете. – Jonathon