Evite envios de botões com confirmação de bootbox e exiba seus valores na mensagem
-
20-12-2019 - |
Pergunta
Tenho um formulário simples com 3 botões, cada um realizando uma ação diferente.Com um clique, quero que o usuário confirme sua ação usando bootbox.confirm().Quero que a caixa de confirmação seja exibida:"Tem certeza da sua escolha:" + valor.Como posso conseguir isso?
HTML:
<form action="" method="post">
<button type="submit" name="action" value="success" class="confirm"></button>
<button type="submit" name="action" value="fail" class="confirm"></button>
<button type="submit" name="action" value="no exam" class="confirm</button>
</form>
Javascript/jquery eu tentei:
<script>
$(document).ready(function() {
$(document).on("click", ".confirm", function(e) {
e.preventDefault();
bootbox.confirm("Are you sure for your choice?", function(result) {
if (result) {
console.log("user confirmed");
} else {
console.log("user declined");
}
});
});
});
</script>
Este é o caminho certo (com classes em todos os botões) ou tenho que selecionar o formulário?Recebo a caixa de confirmação e os logs corretamente, mas em caso de sucesso não sei como enviar.Também não sei como colocar o valor escolhido na mensagem.
Solução
Esperamos que você tenha conseguido descobrir isso, mas se não, aqui está tudo o que estava faltando.Além disso, como esse fluxo é assíncrono, não mova e.preventDefault() para o retorno de chamada.
$(document).ready(function() {
$(document).on("click", ".confirm", function(e) {
e.preventDefault();
var $this = $(this);
bootbox.confirm("Are you sure for your choice: "+$this.val()+"?", function(result) {
if (result) {
console.log("user confirmed");
} else {
console.log("user declined");
}
});
});
});