2010-02-10 21 views
13

Tengo un problema de perflexión que he investigado y aparece en blanco;jQuery validate(); Solo validar al hacer clic en un tipo de botón de envío

Escenario: Tengo un formulario, con el plugin de validación() (http://docs.jquery.com/Plugins/Validation) del bassistance.de jQuery.

Sin embargo, el trabajo presentado se envía perfectamente; Yo dos tipos de botón de enviar.

Uno envía el formulario como de costumbre, desencadenando mi validación de back-end y devuelve errores o éxito.

El otro tipo, es para todos los intensos y propósitos un botón de enviar al navegador, sin embargo, le dice a mi back-end que agregue otra sección de entradas (es decir, un elemento repetitivo para el historial de empleo.) Quiero que el usuario ser capaz de agregar los elementos repetitivos sin tener que completar primero el resto del formulario. Entonces, al hacer clic en el segundo tipo de envío, quiero ANULAR el validar();

HTML:

<form method="post" action="" id="ApplicationForm" name="ApplicationForm"> 

    <input id="job1" name="job1" class="required"/> 
    <input type="submit" name="delete_job1" value="Delete" class="delete" /> 

    <input id="job2" name="job2" class="required"/> 
    <input type="submit" name="delete_job2" value="Delete" class="delete" /> 

    <input type="submit" name="add_job" value="Add Job" class="add" /> 

    <input type="submit" name="ApplicationForm" value="Save Details" class="submit" /> 

</form> 

He tratado de un detector para el verdadero botón de envío a continuación, pero esto sólo se detiene el validar todas togerther;

$(document).ready(function() 
{ 
    var submitPress 

    $(".submit").click(function() 
    { 
     submitPress = true; 
    }); 

    if (submitPress) 
    { 
     $('form#ApplicationForm').validate(); 
    } 
}); 

Supongo que esto se debe a que validate(); listeners se configura en la carga inicial de la página, no al enviar ...

¿Existe alguna regla o configuración para validate(); Me falta, que podría utilizar, o incluso un buen truco con el buen viejo JS fasioned.

Muchos amigos que alguna vez pueden ayudar, estoy en mi punto final.

Atentamente, Trabajar hasta tarde, de nuevo, desarrollador

Respuesta

23

http://docs.jquery.com/Plugins/Validation/Reference#Skipping_validation_on_submit

básicamente, añadir class="cancel" a los botones de presentar el que no desea que activen la validación.

<input type="submit" value="I Validate" /> 
<input type="submit" class="cancel" value="I skip Validation" /> 
+0

Saludos Chris, eso es el tejón ... No sé cómo me lo perdí. Creo que entré anoche en la zona del crepúsculo y tuve que irme a casa. –

+0

sweeeet ... usando jquery mobile, pensó que podría ser un atributo data- *. Gracias @rambo coder – sonjz

+0

A partir de 2015 la clase = "cancelar" ahora está en desuso. Ahora agrega el atributo 'formnovalidate'. Haga clic en el enlace para ver la documentación más reciente. – Ben

0

no su trabajo, debido a que el ID que ha proporcionado de su elemento de entrada, que se convierten en cambio como éste submit_1_btnSubmit, después de la carga de la página

manera de deshacerse de este error se puede utilizar ClientIDMode="Static"

(if you are working on asp.net) 
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" CssClass="Submit" ClientIDMode="Static" /> 

else 

you may access `clientIDmode` property on button control dynamically. 
Cuestiones relacionadas