2012-04-16 16 views
9

Ho una vista fortemente tipizzata per il mio modello e quello che mi piacerebbe è che quando l'utente fa clic su Invia, viene visualizzata una finestra di conferma che conferma che l'utente effettivamente Desidero inviare il modulo, se fanno clic su Annulla, allora non dovrebbe attivare l'azione HttpPost per quella vista, è possibile?ASP.NET MVC - Avere un pulsante di conferma con un modulo

risposta

23

Ovviamente è possibile. Mi piace usare un approccio non invadente. Ecco un esempio semplificato:

jQuery(document).ready(function() { 
    jQuery('[data-confirm]').click(function (e) { 
    if (!confirm(jQuery(this).attr("data-confirm"))) 
    { 
     e.preventDefault(); 
    } 
    }); 
}); 

Poi solo bisogno di aggiungere un attributo data-Conferma per il vostro pulsante di invio per esempio

<input type="submit" data-confirm="are u sure?" /> 

Naturalmente è possibile utilizzare questo attributo sui link, pulsanti, ecc. non si è obbligati a inviare solo i pulsanti e, se si desidera implementare una finestra di dialogo di conferma più avanzata, è necessario sostituire il codice solo in un unico punto.

+0

Mi piace questo approccio! Grazie! – CallumVass

+0

discreto, intelligente! –

+0

Ho

come azione del mio modulo e nessuna delle soluzioni che ho provato a lavorare . Mostrano tutti un dialogo di conferma, ma non inviare i dati del modulo se si fa clic su "sì". Ogni suggerimento sarà molto apprezzato. – Darkloki

3

è possibile aggiungere una chiamata jQuery semplicemente per quello.

alla fine della vista aggiungere:

<script type="text/javascript"> 

    $("form").submit(function() { 

     return confirm('Are you sure?'); 

    }); 

</script> 

o, aggiungere un

onsubmit="return confirm('Are you sure?');" 

come una nuova proprietà elemento

4
 function doSubmit() 
     {         
       if(window.confirm("ARE YOU SURE TO PERFORM THIS ACTION")) 
       {      
        return true; 
       } 
       else return false;     
     } 

chiamata doSubmit() funzione onsubmit caso di modulo, Eg- onsubmit="return doSubmit()

0

Credo che questo possa essere fatto sovrascrivendo il pulsante di invio usando jquery. Jquery .submit()

In questo modo, quando la persona che ha effettuato l'invio, è possibile visualizzare un messaggio e inviarlo o annullarlo.

Problemi correlati