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

222
Visualizações
¿Por qué no funciona llenar el campo de entrada con Javascript?

Durante el proceso de pago en nuestro sitio magento, los clientes pueden agregar un código de descuento.

Este es el pasaje de código relevante:

 <div class="payment-option _collapsible discount-code _active"> <form class="form form-discount" id="discount-form"> <div class="payment-option-inner"> <div class="field"> <label class="label" for="discount-code"> <span data-bind="i18n: 'Enter discount code'">Geben Sie den Rabatt-Code ein</span> </label> <div class="control"> <input class="input-text" type="text" id="discount-code" name="discount_code" placeholder="Geben Sie den Rabatt-Code ein"> </div> </div> </div> <div class="actions-toolbar"> <div class="primary"> <button class="action action-apply" type="submit" data-bind="'value': $t('Apply Discount'), click: apply" value="Rabatt anwenden"> <span><span>Rabatt anwenden</span></span> </button> </div> </div> </form> </div>

Para facilitar las cosas a nuestros clientes, quiero escribir los códigos de descuento en el almacenamiento local y completar automáticamente el campo de descuento para ellos. Todo esto funciona bien. Sin embargo, al enviar el formulario o hacer clic en el botón (ya sea a través de Javascript o manualmente en el navegador), el formulario devuelve un error de que el código no es válido.

Mirando la consola, el valor del campo de entrada no se envía y se pasa una cadena vacía a Magento para su verificación. Lo que obviamente devuelve el mensaje de error.

¿Alguien puede darme alguna orientación sobre lo que me estoy perdiendo al configurar automáticamente el código de descuento? Este es el pasaje relevante en el guión:

 document.getElementById('discount-code').value = discountCode; var discountSection = document.getElementsByClassName("discount-code")[0]; var discountButton = discountSection.getElementsByClassName("action-apply"); discountButton[0].click()

el uso de enviar () volverá a cargar la página y perderá el código de descuento, por lo que hacer clic en el botón parece ser el camino a seguir. ¿Me estoy perdiendo algún proceso en el que necesito hacer que el formulario "se dé cuenta" de que se ingresó una entrada?

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

0

Parece que te falta un objeto con la clase de discount-code . Veo que lo usa como nombre e identificación, pero sin clase, por lo que getElementsByClassName vuelve vacío ya que no hay elementos con esa clase.

Creo que querías usar la clase actions-toolbar .

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