2014-04-10 14 views
13

Sto tentando di aggiungere una conferma prima che un modulo venga inviato utilizzando jQuery. Ho trovato un buon esempio in un'altra domanda di overflow dello stack form confirm before submit ma non riesco a farlo funzionare.Conferma prima di inviare il modulo utilizzando jQuery

jQuery:

$(function() { 
    $('form#delete').submit(function() { 
     var c = confirm("Click OK to continue?"); 
     return c; 
    }); 
}); 

Template:

<form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %} 
    <input class="floatright" type="submit" value="Delete" /> 
</form> 

Come possiamo raggiungere questo obiettivo?

risposta

15

Si inoltra il modulo e dopo aver stanno controllando per confermare, è necessario l'inverso

JS:

$(function() { 
    $("#delete_button").click(function(){ 
     if (confirm("Click OK to continue?")){ 
     $('form#delete').submit(); 
     } 
    }); 
}); 

HTML:

<form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %} 
    <input id="delete_button" class="floatright" type="button" value="Delete" /> 
</form> 
+0

funziona perfetto ora, grazie –

+0

ho aggiunto 'event.preventDefault();' in una condizione di 'altro' – campeterson

+0

Questo sarà ** non ** lavoro se si invia il modulo in alcun modo oltre clic su questo pulsante (ad es., premere enter in un altro input). La risposta di @ user3311206 è migliore per questo. – Ben

0

Assicurarsi che si mette il codice in $(document).ready(), come questo:

$(document).ready(function() { 
    $('form#delete').submit(function() { 
     var c = confirm("Click OK to continue?"); 
     return c; 
    }); 
}); 
12
$('#delete').submit(function(event){ 
    if(!confirm("some text")){ 
     event.preventDefault(); 
     } 
    }); 
0
$(function() { 
     $('form#delete').click(function(e) { 
     e.preventDefault(); 
     var c = confirm("Click OK to continue?"); 
     if(c){ 
      $('form#delete').submit(); 
      } 
     }); 
    }); 

    <form id="delete" action="www.google.com"> 
     <input id="deletesubmit" type="submit" value="Delete" /> 
    </form> 
Problemi correlati