Мой сценарий:
У меня есть проиндексированная страница базы данных db, которая извлекает несколько файлов (изображений) с кнопкой «удалить файл» рядом с каждым изображением. Кроме того, рядом с каждым изображением есть флажки для нескольких файлов, которые необходимо удалить. Кнопка «Удалить файл» вызывает функцию «удалить запись» и передает ей ключ... она отлично удаляет файл. Однако, когда кнопка массового удаления вызывает эту же функцию «deleteRecord» для массового удаления и передает ей ключ, никакие файлы не удаляются. 'deleteRecord' проходит через каждый ключ и имеет событие onsuccess. Однако ничего не удаляется?
Функция deleteFile (работает с отдельными кнопками):
function deleteRecord (id) {
console.log('inside deleteRecord. id: ' + id);
var transaction = db.transaction("patient", "readwrite");
var objectStore = transaction.objectStore("patient");
var request = objectStore.delete(id);
request.onsuccess = function(evt) {
console.log("It's gone!");
};
Он успешно вызывается из:
inputBttn.onclick = function () {
var prompt = 'Are you sure you want to delete this record?'
answer = confirm(prompt);
if (answer) {
deleteRecord(key);
console.log('Key = ' + key + ' Record Deleted');
}
и безуспешно из:
function massDelete() {
console.log('inside massDelete');
var checkboxes = document.getElementsByName('c1');
var prompt = 'You are about to delete Multiple Records. Are you sure?'
var answer = confirm(prompt);
if (answer) {
console.log('Delete confirmed...starting mass delete');
for (var x = 0; x < checkboxes.length; x++) {
if (checkboxes[x].checked) {
var key = checkboxes[x].value;
console.log('checkbox value = ' + key);
deleteRecord (key);
}
};
Буду очень признателен за любые объяснения, почему это происходит.
.delete(id)
, должны соответствовать типу, используемому для создания идентификаторов. - person user1460015   schedule 31.01.2013