I have a section of Html, where I have the user click a link (Delete) and the page then displays a 'Confirm Delete' button. When the 'Confirm Delete' button is clicked, JavaScript does an Ajax call to perform the delete. This works great in Chrome, but not in Internet Explorer (v11).
When debugging in Chrome, I can see the JavaScript called, but not in Internet Explorer.
The app is MVP. This is the rendered HTML:
<td>
<a href="/project/edit">Edit</a> |
<a href="/project/details">Details</a> |
<a class="delete-link" href="javascript:void(0);">Delete</a>
<div class="btn btn-primary delete-confirm" style="display: none;" data-delete-action="_submissionfiledelete" data-delete-controller="project" data-delete-id="b59fa83e-14a8-e511-8172-00215e466552">Confirm Delete</div>
</td>
And here's the javascript:
$(function () {
$(Document).on("click",".delete-link",function (event) {
var deleteLink = $(this);
deleteLink.hide();
var confirmButton = deleteLink.siblings(".delete-confirm");
confirmButton.show();
var cancelDelete = function () {
removeEvents();
showDeleteLink();
};
var deleteItem = function () {
removeEvents();
confirmButton.hide();
var url = '/' + confirmButton.attr('data-delete-controller') + '/' + confirmButton.attr('data-delete-action') + '/' + confirmButton.attr('data-delete-id');
$.post(
url,
AddAntiForgeryToken({ id: confirmButton.attr('data-delete-id') }))
.done(function () {
var parentRow = deleteLink.closest(".removable-row"); //"tr:first, li:first");
parentRow.fadeOut('fast', function() {
parentRow.remove();
});
}).fail(function (data) {
var bpData = data;
});
return false;
};
var removeEvents = function () {
confirmButton.off("click", deleteItem);
$(document).on("click", cancelDelete);
$(document).off("keypress", onKeyPress);
};
var showDeleteLink = function () {
confirmButton.hide();
deleteLink.show();
};
var onKeyPress = function (e) {
//Cancel if escape key pressed
if (e.which == 27) {
cancelDelete();
}
};
confirmButton.on("click", deleteItem);
$(document).on("click", cancelDelete);
$(document).on("keypress", onKeyPress);
return false;
});
AddAntiForgeryToken = function (data) {
data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val();
return data;
};
});