Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
Problemas de validación de Async JS para html textarea

Estoy tratando de replicar el código en este artículo: https://depth-first.com/articles/2020/08/24/smiles-validation-in-the-browser/

Lo que estoy tratando de hacer diferente es que estoy usando un área de texto en lugar de una entrada para tomar una entrada de varias líneas. Además de mostrar un mensaje de error, también quiero mostrar la entrada que no pasa la validación.

El script de validación original es este:

 const path = '/target/wasm32-unknown-unknown/release/smival.wasm'; const read_smiles = instance => { return smiles => { const encoder = new TextEncoder(); const encoded = encoder.encode(`${smiles}\0`); const length = encoded.length; const pString = instance.exports.alloc(length); const view = new Uint8Array( instance.exports.memory.buffer, pString, length ); view.set(encoded); return instance.exports.read_smiles(pString); }; }; const watch = instance => { const read = read_smiles(instance); document.querySelector('input').addEventListener('input', e => { const { target } = e; if (read(target.value) === 0) { target.classList.remove('invalid'); } else { target.classList.add('invalid'); } }); } (async () => { const response = await fetch(path); const bytes = await response.arrayBuffer(); const wasm = await WebAssembly.instantiate(bytes, { }); watch(wasm.instance); })();

Para trabajar con un área de texto, cambié la función de reloj a esto y agregué un elemento <p id="indicator"> al html para mostrar un error:

 const watch = instance => { const read = read_smiles(instance); document.querySelector("textarea").addEventListener('input', e => { const { target } = e; var lines_array = target.value.split('/n'); var p = document.getElementById("indicator"); p.style.display = "block"; p.innerHTML = "The size of the input is : " + lines_array.length; if (read(target.value) === 0) { target.classList.remove('invalid'); } else { target.classList.add('invalid'); } }); }

Ni siquiera puedo obtener un recuento de las entradas que fallan en la validación. Creo que esto es async js y solo soy un principiante en JavaScript, por lo que es difícil seguir lo que sucede aquí, especialmente la parte donde la función e se hace referencia a sí misma.

 document.querySelector("textarea").addEventListener('input', e => { const { target } = e;

¿Puede alguien ayudarme a comprender este código complicado y descubrir cómo obtener un recuento de las entradas que fallan en la validación y también imprimir la cadena/índice de las mismas para ayudar al usuario?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hay un error en su código para contar las entradas en el área de texto:

var lines_array = target.value.split('\n'); // reemplaza /n con \n

Está preguntando sobre la función a la que se hace referencia e: la sintaxis de asignación de desestructuración es una expresión de JavaScript que hace posible desempaquetar valores de matrices, o propiedades de objetos, en distintas variables. Puede encontrar más información Mdn web docs - Objeto de desestructuración

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda