3
respostas

FORM com duas possibilidades de "submit"

Como que eu criaria um FORM que teoricamente teria 2 possibilidades de SUBMIT? Exemplo, eu queria criar uma opção de "pagar" e outra de "pagar e conciliar", onde ambos teria que ter uma ação de submit? No JSF, eu consigo direcionar pra 2 métodos diferentes, pois a "action" fica no botão e não no "form".

3 respostas

Acabei criando no canto errado. Era pra criar no curso de Spring MVC - Parte I. Se a moderação puder mover pro Fórum correto seria interessante.

Oi Rafael,

Infelizmente não dá pra fazer um form só com dois submits, justamente pelo motivo que você falou: a "action" fica no form.

Para conseguirmos simular essa ideia, tem duas possibilidades: - uma é fazer 2 forms, uma pra cada botão. Mas aí, se tiverem muitos campos, ficariam repetidos - a outra é usar Javascript, pra mudar a action dependendo do botão que for clicado (no caso de todos os campos serem os mesmos para as duas submissões)

Se tiver algum dúvida na implementação de uma dessas possibilidades, avisa aqui. :)

Rafael podemos fazer isso utilizando button, primeiro vamos ao seu primeiro exemplo que seria o pagar:

<form action="pagar">
    <button type="submit">Pagar</button>
</form>

Tudo acerto, quando o usuário clicar no botão ele irá submeter o form que por padrão fará apenas o pagamento.

Agora para ter outro action basta adicionar mais um botão e nele informar o action do form.

<form action="/pagar">
    <button type="submit">Pagar</button>
    <button formaction="/pagar/conciliar" type="submit">Pagar e Conciliar</button>
</form>

Sendo assim quando ele clicar no botão Pagar e Concilicar irá efetuar outra action.

Obs: Quando temos um button com o atributo formaction o navegador utiliza essa url para fazer o submit do form, caso não possua ele pega o action do form.

Espero ter ajudado