2016-02-28 80 views
0

我沒有得到那種工作方法dnicheck。如果輸入錯誤的號碼,我不會收到任何消息。jquery驗證器添加新方法不起作用

我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上

庫=>https://github.com/Mangulomx/olimpiada

+0

'nie'不匹配'nieP' – Sparky

回答

0

該字段的namenieP,但是您在.validate()方法中將它拼寫爲niename屬性必須與匹配。

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

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

0

在腳本中的第一行錯過了$