JavaScript - Error al modificar valores IndexedDB

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 12 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Error al modificar valores IndexedDB

Publicado por Jesus Alonso (6 intervenciones) el 26/07/2021 17:18:38
Buenas, mi problema en este momento es que intento modificar los valores de un almacen de archivos (un registro en especifico) de una base de datos creada con indexedDB pero me aroja el siguiente error: Uncaught DOMException: Failed to execute 'put' on 'IDBObjectStore': HTMLInputElement object could not be cloned.
at IDBRequest.request.onsuccess (file:///C:/Users/Jesus/Desktop/Practica%20base%20de%20datos%20local/html/modificar.html?id=4:67:44)
request.onsuccess @ modificar.html?id=4:67
IndexedDB (asincrónica)
modificar @ modificar.html?id=4:56
onclick @ modificar.html?id=4:84

he buscado como solucionarlo pero el mismo no se solventa, aqui el script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
        var dataBase = null;
        var link = window.location.search.substring(1);
        var get = link.split("=");
         function startDB() {
 
                dataBase = indexedDB.open("object", 1);
 
                dataBase.onupgradeneeded = function (e) {
 
                    var active = dataBase.result;
                    var object = active.createObjectStore("people", {keyPath: 'id', autoIncrement: true});
                    object.createIndex('by_name', 'name', {unique: false});
                    object.createIndex('by_dni', 'dni', {unique: true});
 
                };
 
                dataBase.onsuccess = function (e) {
                    //    alert('Database loaded');
                    load(parseInt(get[1]));
                };
 
                dataBase.onerror = function (e) {
                    alert('Error loading database');
                };
 
            }
       function load(id) {
                var active = dataBase.result;
                var data = active.transaction(["people"], "readonly");
                var object = data.objectStore("people");
 
                var request = object.get(parseInt(id));
 
                request.onsuccess = function () {
                    var result = request.result;
 
                    if (result !== undefined) {
                        document.querySelector("#id").value = result.id;
                        document.querySelector("#dni").value = result.dni;
                        document.querySelector("#name").value = result.name;
                        document.querySelector("#surname").value = result.surname;
                    }
                };
            }
        function modificar(){
            var active = dataBase.result;
            var data = active.transaction(["people"], "readwrite");
            var object = data.objectStore("people");
            var request = object.get(parseInt(get[1]));
            request.onerror = function(e) {
                alert("Se ha producido un error al realizar la peticion");
            };
            request.onsuccess = function(e) {
                var data = e.target.result;
                data.dni = document.querySelector("#dni");
                data.name = document.querySelector("#name");
                data.surname = document.querySelector("#surname");
                data.id = document.querySelector("#id");
                // Put this updated object back into the database.
                var requestUpdate = object.put(data);
                requestUpdate.onerror = function(e) {
                    alert("Se ha producido un error al modificar los datos");
                };
                requestUpdate.onsuccess = function(e) {
                    alert("Datos actualizados con éxito");
                    window.location.href="../index.html";
                };
            };
        }

a que se debe el error? (el listado de datos y demas funciones estan en la pagina principal)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder