es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de tipo no capturado: no se puede leer la propiedad de null (lectura ‘value’) en JavaScript.

Obtengo el error “Uncaught typeerror no se puede leer la propiedad de nulo (lectura ‘valor’)”. Estoy constantemente buscando una solución y no sé qué está mal en el código, ¿me puedes ayudar?

Mi código

function test() {

  for (var i = 0; i < 40; i++) {
    var name1.value = document.getElementsByClassName('test1')[i];
    var address1.value = document.getElementsByClassName('test2')[i];

    if (name1.value == "test4") {
      address1.value = "test5";
    } 
    else if (name1.value == "test6") {
      address1.value = "test7";
    } 
    else if (name1.value == "test8") {
      address1.value = "test9";
    }
  }
}

<div class="form grup test1">
  <label for="power-full.names"> Nombres completos</label>
  <input name="power-full.names" list="power-full.names" type="text" class="form grup test1" onclick="test(this)">
  <datalist type="text" id="power-full.names">
    <option value="test4">
    <option value="test6">
    <option value="test8">
  </option></datalist>
</div>


<div class="form grup test2">
  <label for="power-full.adress"> Dirección completa</label>
  <input name="power-full.adress" list="power-full.adress" type="text" class="form grup test2" onclick="test(this)">
  <datalist type="text" id="power-full.adress">
    <option value="test5">
    <option value="test7">
    <option value="test9">
  </option></datalist>
</div>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error “Uncaught typeerror cannot read property of null (reading ‘value’)” significa que estás intentando acceder a la propiedad “value” de una variable que es nula o indefinida. En tu código, has declarado dos variables “name1.value” y “address1.value” sin inicializarlas. Esto está causando el error.

    Para resolver este error, necesitas inicializar estas variables antes de usarlas. Puedes hacer esto declarando primero las variables y luego asignándoles los valores correspondientes obtenidos de los elementos “test1” y “test2” usando la propiedad “value”.

    Aquí tienes un ejemplo de cómo puedes inicializar las variables:

    function test(){
      for(var i=0; i < 40; i++) {
        var name1 = document.getElementsByClassName('test1')[i];
        var address1 = document.getElementsByClassName('test2')[i];
    
        if( name1.value == "test4"){
          address1.value = "test5";
        }
        else if (name1.value == "test6"){
          address1.value = "test7";
        }
        else if (name1.value == "test8"){
          address1.value = "test9";
        }
      }
    }
    

    Como puedes ver, primero declaramos las variables “name1” y “address1” y luego las asignamos a los elementos correspondientes obtenidos de las clases “test1” y “test2” usando el método “getElementsByClassName”. Ahora podemos acceder a la propiedad “value” de estas variables sin errores.

Comments are closed.