Jump to content

Erro javascript em receber value do input


John Hebert Trindade
Go to solution Solved by iron,

Recommended Posts

Boa tarde a todos,

tenho em meu formulário o seguinte input

<input type="text" name="codigo_barras[]" id="codigo_barras" onkeyup="searchProdutos(1)" class="input-adm sizefour" autocomplete="on" required>

no meu javascript tenho o seguinte:

function searchProdutos(registo){

  //recebe o valor que o usuário digitar
  const codigoBarras = document.querySelector('#codigo_barras'+registo);

  const valueCodigoBarras = codigoBarras.value;
}

Conforme começo a digitar no campo ocorre o seguinte erro:

custom_adms.js:1014 Uncaught TypeError: Cannot read properties of null (reading 'value')
    at searchProdutos (custom_adms.js:1014:42)
    at HTMLInputElement.onkeyup (index:215:163)

Já alterei o name e id de "código_barras" para "codigoBarras" ou "codigobarras" e continua o mesmo.

 

Link to comment
Share on other sites

  • Solution

O id do teu input é "codigo_barras" e não "codigo_barras1"

onkeyup="searchProdutos()" não necessitas do input

function searchProdutos(){

  //recebe o valor que o usuário digitar
  const codigoBarras = document.querySelector('#codigo_barras');

  const valueCodigoBarras = codigoBarras.value;
  console.log(valueCodigoBarras)
}

Vais ver que o log mostra o valor que o input tem sempre que escreves

 

Edit:
Tópico no local errado. Deveria estar subtópico de JS e não de PHP

Edited by iron
Adicionado um comentário em PS

Cumprimentos,
iron

Link to comment
Share on other sites

mas gostaria de receber o valor enviado na função que neste exemplo coloquei 1 mas depois irei fazer-lo dinâmico.

se coloco assim:

1009 function searchProdutos(registo){
1010
1011  console.log(registo);
1012
1013  //recebe o valor que o usuário digitar
1014  const codigoBarras = document.querySelector('#codigo_barras');
1015
1016  const valueCodigoBarras = codigoBarras.value;
1017}

aparece me isso:

quando digito 5 aparece:

custom_adms.js:1011 1 

custom_adms.js:1017 5

quando digito o 6 a seguir o 5 aparece:

custom_adms.js:1011 1

custom_adms.js:1017 56

e ao digitar mais um numero, neste caso o 0:

custom_adms.js:1011 1

custom_adms.js:1017 560

Edited by John Hebert Trindade
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.