2015-03-27 10 views
7

Ho un div in JSP come segue:convalida jquery non addMethod lavoro

<input type="text" id="year" placeholder=" Year" class="year" name= "year" value=""/> 

voglio calcolare la differenza tra anno in corso e l'anno è entrato. Devo mostrare l'errore se il valore non giace in un intervallo. Questa è la funzione di validatore jquery del mio custome.

jQuery.validator.addMethod('validAge', function (value, element, params) { 
    alert("inside add method"); 
    var currentYear = (new Date).getFullYear(); 
    var range = currentYear - $element.val();; 
    if(range >10 && range< 70) 
     { 
     return true; 
     } 
    return false; 
}), 

Ma sta mostrando errore in element.val ho definito la regola come

$('#signup_form').validate({ // initialize the plugin 

    rules: { 
     year: { 
      validage: true, 
      }, 
    }, 
    messages: { 
     year: "Invalid year", 
    }, 
    }, 
    }); 
+0

'validage! = ValidAge' –

+0

Grazie ragazzi! Posso accettare solo una risposta, quindi ho accettato il primo. ;) – user3681970

+0

@ user3681970 per favore invii la risposta se possibile :) – Kamini

risposta

6

Nell'elemento jquery addMethod (l'elemento da convalidare) e valore (il valore corrente dell'elemento convalidato)

jQuery.validator.addMethod("validAge", function (value, element, params) { 
     alert("inside add method"); 
     var currentYear = (new Date).getFullYear(); 
     var range = currentYear - value; 

     return this.optional(element) || (range >10 && range< 70) 

    },'Enter range in between 10 to 70'); 

Rimuovere le virgole dove non è necessario e vedere anche la sensibilità del case.

var validator = $('#form').validate({ 
    rules: { 
     year: { 
      validAge: true 
     } 
    }, 
    messages: { 
     year: "Invalid year" 
    } 
}); 
2

Nome metodo non è adeguatamente farro, controllare 'validage' invece di 'validAge'