Я показываю форму, используя jQuery Fancybox - в форме пользователь имеет возможность редактировать запись или удалять запись.
Конфигурация JS для этого всплывающего окна выглядит следующим образом:
$('tr.record').click(function() {
var record_id = $(this).attr("id");
var link = 'http://' + window.location.hostname + '/expenses/expenses_edit/' + record_id;
$.fancybox({
'transitionIn': 'none',
'transitionOut': 'none',
'type': 'ajax',
'href': link,
'onClosed': function() {
parent.location.reload(true);
}
});
$.bind("submit", function() {
$.fancybox.showActivity();
$.ajax({
type: "POST",
cache: false,
data: $(this).serializeArray(),
success: function(data) {
$.fancybox(data);
}
});
return false;
});
});
Это прекрасно работает, когда пользователь изменяет свои данные и нажимает кнопку Сохранить, как показано ниже:
<form>
<button>
<span>
Save
</span>
</button>
</form>
Далее я открыл новую форму для кнопки удаления
<form>
<button onclick="confirmDeleteRecord();">
<span>
Delete
</span>
</button>
</form>
Какой onClick запускает это:
function confirmDeleteRecord() {
var agree = confirm("This expense will be removed and you can't undo this action. Are you sure you want to remove this record?");
if (agree) return true;
else return false;
}
Проблема, с которой я столкнулся, заключается в том, что когда я нажимаю «Отмена» в модальном подтверждении браузера, форма все еще отправляется, и запись удаляется.
Я подозреваю, что это связано с bind
до submit
- кто-нибудь знает, как решить эту проблему? «Отмена» должна просто закрыть модальный браузер.
Спасибо за помощь, высоко ценится.