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

99
Visualizações
Escuchar eventos de formulario de Apache Tapestry

Soy un desarrollador de back-end y recientemente heredé un par de sistemas Apache Tapestry heredados. Mis habilidades con Tapestry son nulas, mi conocimiento en el medio javascript.

Quiero deshabilitar un botón de envío justo antes de que se realice el envío para evitar envíos múltiples. un muy simple

 $(document).ready(function () { $("#form").submit(function () { $("#submitbutton").attr("disabled", true); return true; }); });

El enfoque no funcionará porque el evento de envío se propaga antes de que Tapestry realice la validación del lado del cliente, por lo que podría estar deshabilitando el botón en un intento de envío que fallará la validación.

Sobre esta pregunta, aprendí que Tapestry también propaga sus propios eventos, y si pudiera escuchar tapestry:formprocesssubmit Eso probablemente resolvería mi problema.

Tengo mi archivo CreateContract.tml con el formulario, campos y botones que ya funcionan, tengo mi archivo CreateContract.java con

 @Import(library = { "context:js/jquery.mask.min.js", "context:js/maintain-contracts.js", "context:js/zone-overlay.js"}, stylesheet = "context:layout/zone-overlay.css")

Y mi archivo maintain-contracts.js con

 $(document).ready(function () { $("#form").on('tapestry:formprepareforsubmit', function () { console.log("I want to arrive here!"); }); });

Pero no funciona. En este hilo de la lista de correo, veo personas discutiendo asuntos muy similares, pero escuchan los eventos de una manera diferente, que no entiendo del todo.

¿Debo crear el oyente dentro del inicializador?

Me refiero al evento como 'tapestry:formprepareforsubmit' en lugar de Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT porque tanto en mi sustain maintain-contracts.js como en mi consola, la variable Tapestry está vacía. ¿Por qué?

¿Qué pasa con la tricotomía .bind .on .observe ?

La pregunta de los primeros enlaces se resolvió usando ProptypeJS Class.create, pero creo que no tengo acceso a eso.

¿Estoy haciendo eso mal?

Gracias, cualquier ayuda es apreciada.

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

0

No es un análisis de por qué su enfoque no funciona, pero no obstante, es una referencia útil:

Geoff Callender, creador de Tapestry JumpStart , tiene una excelente descripción de cómo se pueden evitar los envíos de formularios duplicados usando un mixin.

Consulte http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/creatingmixins1

about 4 years ago · Juan Pablo Isaza Relatório

0

Después de leer el código fuente de Tapestry, descubrí que el evento no se llama tapestry:formprepareforsubmit , sino t5:form:prepare-for-submit , aunque no encontré documentación al respecto en ninguna parte.

Asi que

 $(document).ready(function () { $("#form").on('t5:form:prepare-for-submit', function () { console.log("I want to arrive here!"); }); });

Funciona perfectamente.

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