jquery验证器添加新方法不起作用

时间:2016-02-28 11:41:58

标签: jquery jquery-validate

我没有得到那种工作方法dnicheck。如果我输入错误的号码,我不会查看任何消息。

我的main.js

$.validator.setDefaults({
   errorClass: 'form_error',
   errorElement: 'div'
});

$.validator.addMethod("dniCheck", function(value, element){
    var valor = false;
    if(/^([0-9]{8})*[a-zA-Z]+$/.test(value)){
        var numero = value.substr(0, value.length-1);
        numero = numero % 23;
        var let = 'TRWAGMYFPDXBNJZSQVHLCKET';
        letra = let.substring(numero,numero+1);
        if(letra===let) valor = true;
    }
    valor = this.optional(element);
    console.log(valor);
    return valor;
},"DNI no válido");

$("#form_participante").validate({
   rules:{
       nie:{
           dniCheck: true
       }
   },
   messages:{
       nie:{
           dniCheck:"Introduce el dni correcto"
       }
   }
});

我的表格

            <form id="form_participante" action="{{ urlFor('AltaParticipante') }}" method="POST" class="form-horizontal">
                <fieldset>
                    <legend>Alta nuevo participante</legend>
                    <div class="form-group">
                        <label class="col-md-4 control-label" for="nieP">Nie participante</label>
                        <div class="col-md-5">
                            <input id="nieP" name="nieP" placeholder="Nie del participante..." class="form-control input-md" type="text" />
                        </div>    
                    </div>
...
</form>

在其他形式中,我很好地验证了字段

我没有收到任何错误。

github中的

存储库=&gt; https://github.com/Mangulomx/olimpiada

2 个答案:

答案 0 :(得分:0)

脚本中的第一行是否遗漏了$

答案 1 :(得分:0)

您的字段namenieP,但您在nie方法中将其拼错为.validate()name属性必须匹配。

$("#form_participante").validate({
    rules: {
        nie: { // <-  MUST match the NAME attribute
            dniCheck: true
        }
    }, .....

DEMO:http://jsfiddle.net/vukqgv8b/