私のシナリオ:
各画像の横にある「ファイルの削除」ボタンを使用して、複数のファイル (画像) を取得するインデックス付きの db データベース ページがあります。さらに、複数のファイルを削除するために、各画像の横にチェック ボックスがあります。「ファイルの削除」ボタンは「deleteRecord」関数を呼び出し、それにキーを渡します...ファイルは問題なく削除されます。ただし、一括削除ボタンが一括削除のためにこの同じ「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);
}
};
なぜこれが起こっているのかについての説明は大歓迎です。