JavaScript - Cannot read property 'target' of undefined

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Cannot read property 'target' of undefined

Publicado por Angel (9 intervenciones) el 26/09/2020 13:44:53
Buenas, sabéis porque recibo este error en JS? Gracias de antemano


Cannot read property 'target' of undefined
at borrarcontacto (validarformulario.js:74)
at HTMLButtonElement.onclick ((index):1)


validarformulario.js
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
71
72
73
74
75
let idborrar = 0;
let ideditar = 0;
 
const form = document.getElementById('añadircontactos').addEventListener("submit", leerformulario);
const tablatareas = document.getElementById('tablatareas');
 
 
 
 
 
function leerformulario(evt) {
    const nombre = document.getElementById('nombre').value;
    const empresa = document.getElementById('empresa').value;
    const telefono = document.getElementById('telefono').value;
 
 
 
 
 
 
    var infocontacto = new FormData();
    infocontacto.append('nombre', nombre);
    infocontacto.append('empresa', empresa);
    infocontacto.append('telefono', telefono);
 
    var infotelefono = new FormData();
    infotelefono.append('telefono', telefono);
 
 
 
    if (nombre == "" || empresa == "" || telefono == "") {
        console.log('Todos los campos son obligatorios')
 
    } else if (isNaN(telefono)) {
        console.log("El telefono no es valido");
    } else {
 
        insertardb(infocontacto);
    }
    evt.preventDefault();
}
 
 
 
function insertardb(informacion) {
 
    let xhr = new XMLHttpRequest();
    xhr.open('POST', 'añadir.php', true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
            const respuesta = JSON.stringify(xhr.responseText);
            const jsonrespuesta = JSON.parse(respuesta);
            const devolverrespuesta = JSON.parse(jsonrespuesta);
            console.log(devolverrespuesta);
 
            const añadirnuevastareas = document.createElement('tr');
            añadirnuevastareas.innerHTML = `
            <td class="tabla">${devolverrespuesta.datos.nombre}</td>
            <td class="tabla">${devolverrespuesta.datos.empresa}</td>
            <td class="tabla">${devolverrespuesta.datos.telefono}</td>
            <td><button id="btnborrar${idborrar++}"class="btnBorrar" onclick="borrarcontacto()" >Borrar</button>
            <button id="btnEditar${ideditar++}" class="btnEditar" onclick="editarcontacto()">Editar</button></td>`;
            tablatareas.appendChild(añadirnuevastareas);
 
 
 
 
        }
 
    }
    xhr.send(informacion);
}
function borrarcontacto(e){
    alert(e.target.parentElement.classList.constains('btnBorrar'));
}


index.php
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
<!DOCTYPE html>
<html lang="es">
 
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Agenda de contactos</title>
</head>
 
<body>
 
    <div id="header">Agenda de Contactos</div>
    <div id="añadircontacto">
        <h3 style="text-align: center;"> Añadir un contacto </h3>
        <p style="text-align: center;">Todos los campos son obligatorios</p>
        <form id="añadircontactos" action="#" method="POST">
 
            <label for="nombre" class="etiquetas">Nombre:</label>
            <input id="nombre" class="campos" type="text" placeholder="Nombre Contacto">
 
            <label for="empresa" class="etiquetas">Empresa:</label>
            <input id="empresa" class="campos" type="text" placeholder="Empresa Contacto">
 
            <label for="Teléfono" class="etiquetas">Teléfono:</label>
            <input id="telefono" class="campos" type="text" placeholder="Teléfono Contacto">
 
            <button id="btnenviar" >Enviar</button>
        </form>
    </div>
    <div id="contactos">
        <h3 id="contactosh3">Contactos</h3>
        <input id="browser" type="text" placeholder="Buscar tareas">
        <label id="numcontactos">1</label>
 
        <table id="tablatareas">
            <tr>
                <th class="tabla">NOMBRE</th>
                <th class="tabla">EMPRESA</th>
                <th class="tabla">TELEFONO</th>
                <th class="tabla">ACCION</th>
 
 
 
            </tr>
            <tr id="añadirtareas"></tr>
 
        </table>
 
 
    </div>
 
 
    <script src="validarformulario.js"></script>
 
</script>
 
</body>
 
</html>
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
sin imagen de perfil
Val: 183
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Cannot read property 'target' of undefined

Publicado por Yamil Bracho (78 intervenciones) el 26/09/2020 15:20:15
El parametro "e" esta indefinido porque no lo estas pasando en la llamada a la funcion.
Fijate en la linea <td><button id="btnborrar${idborrar++}"class="btnBorrar" onclick="borrarcontacto()" >Borrar</button>

No le pasas nada como parametro a borrarcontacto(). Quizas sea this.form ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Cannot read property 'target' of undefined

Publicado por Angel (9 intervenciones) el 26/09/2020 16:04:22
He puesto
1
<td><button id="btnborrar${idborrar++}"class="btnBorrar" onclick="(e)=>borrarcontacto(e)" >Borrar</button>
y en la funcion borrarcontacto(e) he puesto:
1
2
3
4
function borrarcontacto(e){
    if(e.target.parentElement.classList.contains('btnBorrar')){
        const id = e.target.parentElement.getAttribute('id');
        console.log(id);
Ahora no me da ningun error, pero me gustaria que al hacer click en uno de los botones "Borrar" me apareciese por consola el id del boton (o sea, btnborrar${idborrar++}) .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar