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

209
Views
Actualice el estado requerido de las entradas con JavaScript

Tengo dos entradas que se requieren para poder enviar el formulario. Las entradas son la latitud y la longitud de una dirección. Si completo los campos manualmente, el estado requerido del campo se actualiza y se puede enviar el formulario.

Sin embargo, si lo lleno automáticamente haciendo clic en el mapa, los valores se actualizan pero el estado requerido no cambia. Se mantiene rojo. Para ser más especifico. Si un usuario hace clic en el mapa o busca una dirección, el marcador actualizará su posición y los campos se actualizarán con las nuevas coordenadas.

Estoy usando Leaflet y GeoSearch, así que uso algunos de los eventos que están disponibles para poder lograr esto. Aquí está mi código hasta ahora:

 let map = L.map('map').setView([lat, lon], 18); var marker = new L.marker([lat, lon]).addTo(map) map.on('geosearch/showlocation', function (e) { if (marker) { marker = updateFields(e.marker._latlng, marker, map); } else { marker = new L.Marker(e.marker._latlng).addTo(map); } }); setTimeout(() => { map.invalidateSize(true); }); map.on('click', function (e) { if (marker) { marker = updateFields(e.latlng, marker, map); } else { marker = new L.Marker(e.latlng).addTo(map); } }); ... function updateFields(coordinates, marker, map) { /* get the coordinates inputs*/ let hiddenLng = document.querySelector("input[name*='[marker_longitude]']"); let userLng = document.querySelector("input[data-formengine-input-name*='[marker_longitude]']"); let hiddenLat = document.querySelector("input[name*='[marker_latitude]']"); let userLat = document.querySelector("input[data-formengine-input-name*='[marker_latitude]']"); map.removeLayer(marker); marker = new L.Marker(coordinates).addTo(map); hiddenLng.value = coordinates.lng.toFixed(7); userLng.value = coordinates.lng.toFixed(7); hiddenLat.value = coordinates.lat.toFixed(7); userLat.value = coordinates.lat.toFixed(7); return marker; }

Esto actualizará la parte visible de los campos así como los ocultos. El CMS en el que estoy trabajando requiere campos ocultos para que se envíen los datos reales.

La pregunta:

¿Cómo actualizo el estado requerido de las entradas completas?

Aquí una representación visual con la estructura de las entradas y el problema:

La estructura

ingrese la descripción de la imagen aquí

El estado requerido sin cambios cuando se llenan los campos

ingrese la descripción de la imagen aquí

Saludos

about 4 years ago · Juan Pablo Isaza
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!