0
respostas

Não consegue ler o Value

Estou praticando um pouco e só que esbarrei em um probleminha aqui. Estou tentando pegar o valor de value só que não estou conseguindo dá a mensagem:

formAlunos.js:25 Uncaught TypeError: Cannot read property 'value' of undefined
    at obterAlunoForm (formAlunos.js:25)

    let alunos = document.querySelector(".aluno")

for(let i = 0; i < alunos.length; i++) {
    aluno = alunos[i]

    let nota1Td = document.querySelector(".info-nota1")
    let nota1 = nota1Td.textContent

    let nota2Td = document.querySelector(".info-nota2")
    let nota2 = nota2Td.textContent

    let nota3Td = document.querySelector(".info-nota3")
    let nota3 = nota3Td.textContent

    let nota4Td = document.querySelector(".info-nota4")
    let nota4 = nota4Td.textContent

    let mediaTd = document.querySelector(".info-media")
    //let pontosTd = document.querySelector(".info-pontos")

    let notaEhValida = validaNotas(nota1, nota2, nota3, nota4)

    if(!notaEhValida) {
        mediaTd.textContent = "Nota(s) Inválidas"
        alunos.classList.add("aluno-invalido")
    }

}

function calculaMedia(media) {
    let mediaAlunos = 0 
    let nota1 = 0
    let nota2 = 0
    let nota3 = 0
    let nota4 = 0

    mediaAlunos = (nota1 + nota2 + nota3 + nota4) / 4

    return media.toFixed(2)
}

let adicionar_alunos = document.querySelector("#adicionar-aluno")

adicionar_alunos.addEventListener("click", function(event) {
    event.preventDefault()

    var form = document.querySelector("#formAdicionarAluno")
    var aluno = obterAlunoForm(form)

    var alunoTr = montaAlunoTr(aluno)

    var tabela = document.querySelector("#tabela-alunos")
    tabela.appendChild(alunoTr)
    console.log(alunoTr)
    form.reset()

})

function obterAlunoForm(form) {
    var aluno = {
        nome: formAdicionarAluno.nome.value,
        nota1: formAdicionarAluno.nota1.value,
        nota2: formAdicionarAluno.nota2.value,
        nota3: formAdicionarAluno.nota3.value,
        nota4: formAdicionarAluno.nota4.value,
        media: calculaMedia(form.media.value),
        pontos: formAdicionarAluno.pontos.value,
    }
    return aluno
}

function montaAlunoTr(aluno) {
    var alunoTr = document.createElement("tr")
    alunoTr.classList.add("aluno")

    alunoTr.appendChild(montaAlunoTd(aluno.nome, "info-nome"))
    alunoTr.appendChild(montaAlunoTd(aluno.nota1, "info-nota1"))
    alunoTr.appendChild(montaAlunoTd(aluno.nota2, "info-nota2"))
    alunoTr.appendChild(montaAlunoTd(aluno.nota3, "info-nota3"))
    alunoTr.appendChild(montaAlunoTd(aluno.nota4, "info-nota4"))
    alunoTr.appendChild(montaAlunoTd(aluno.media, "info-media"))
    alunoTr.appendChild(montaAlunoTd(aluno.pontos, "info-pontos"))

    return alunoTr
}

function montaAlunoTd(dados, classe) {
    var td = document.createElement("td")
    td.textContent = dados
    td.classList.add(classe)
    return td
}