2012-04-16 21 views
9

Tengo una vista fuertemente tipada para mi modelo y lo que me gustaría es que cuando el usuario haga clic en enviar, aparezca un cuadro de confirmación que confirme que el usuario sí desea enviar el formulario, si hacen clic en cancelar, entonces no debe iniciarse la acción HttpPost para esa vista, ¿es esto posible?ASP.NET MVC - Tener un botón de confirmación con un Formulario

Respuesta

23

Por supuesto que es posible. Me gusta usar un enfoque discreto. Aquí está un ejemplo simplificado:

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

después, sólo tendrá que añadir un atributo de datos confirman a su botón de enviar, por ejemplo,

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

Por supuesto, puede utilizar este atributo en los enlaces, botones, etc. no está restringido a enviar solo botones, y si desea implementar un diálogo de confirmación más elegante más tarde tendrá que reemplazar el código solo en un lugar.

+0

¡Me gusta este enfoque! ¡Gracias! – CallumVass

+0

discreto, inteligente! –

+0

Tengo

como mi acción de formulario y ninguna de las soluciones que probé trabajar . Todos muestran un diálogo de confirmación, pero luego no envían los datos del formulario si haces clic en "sí". Cualquier sugerencia sería muy apreciada. – Darkloki

3

puede agregar una llamada jQuery simplemente para eso.

al final de la vista de añadir:

<script type="text/javascript"> 

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

     return confirm('Are you sure?'); 

    }); 

</script> 

o, añadir un

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

como un nuevo elemento propiedad

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

llamada doSubmit() función de onsubmit caso de la formulario, Eg- onsubmit="return doSubmit()

0

Creo que esto se puede hacer anulando el botón de enviar usando jquery. Jquery .submit()

De esta forma, cuando la persona entre a enviar puede mostrar un mensaje y enviarlo o cancelarlo.

Cuestiones relacionadas