Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
No se pueden obtener entradas autocompletadas en el formulario React.js con onChange

Tengo un formulario con algunas entradas con onChange={e => handleChange(e)} en ellas. El problema es que uno de ellos, el campo de código postal, autocompleta otras entradas cuando el usuario inserta un código postal válido, por lo que onChange no se activará y, por lo tanto, el valor de entrada no se guardará.

 //SAVING DATA FROM FORM const [values, setValues] = useState({}) function handleChange(e) { setValues({ ...values, [e.target.id]: e.target.value}) } //AUTOCOMPLETING FROM ZIP const [address, setAddress] = useState("") const [neighborhood, setNeighborhood] = useState("") const [city, setCity] = useState("") const [state, setState] = useState("") async function searchZIP(zip) { zip = zip.replace(/\D/g, "") const data = await fetch(`http://viacep.com.br/ws/${zip}/json/`) .then(data => data.json()) .catch(data => data = "") let { logradouro="--", bairro="--", localidade="--", uf="--" } = data if(zip.length === 0) logradouro="", bairro="", localidade="", uf="" setAddress(logradouro) setNeighborhood(bairro) setCity(localidade) setState(uf) } //SUBMITING function handleSubmit(e) { e.preventDefault() axios.post("http://localhost:8080", values) }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Debe activar el evento de cambio de entrada mediante programación. hay una discusión sobre el repo de github de reacción, puede encontrar algunos fragmentos de código útiles desde allí.

La solución más genérica (tomada de here ) es:

 const inputTypes = [ window.HTMLInputElement, window.HTMLSelectElement, window.HTMLTextAreaElement, ]; export const triggerInputChange = (node, value = '') => { // only process the change on elements we know have a value setter in their constructor if ( inputTypes.indexOf(node.__proto__.constructor) >-1 ) { const setValue = Object.getOwnPropertyDescriptor(node.__proto__, 'value').set; const event = new Event('input', { bubbles: true }); setValue.call(node, value); node.dispatchEvent(event); } };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!