2012-11-02 4 views
1

내 등록 양식에 jquery 유효성 검사 플러그인을 사용하고 있습니다. 이 양식은 여러 언어로 제공되어야합니다. 여기에서 기본 메시지의 현지화 방법에 대한 답변을 찾았습니다. JQuery Validation Internationalization ProblemjQuery 유효성 검사 플러그인 현지화 사용자 정의 메시지

그러나 맞춤 메시지의 현지화에 문제가 있습니다. 다음과 같이

내 유효성 검사 코드는 다음과 같습니다

registrationForm.validate({ 
     onkeyup: false, 
     errorClass: 'error', 
     validClass: 'valid', 
     rules: { 
      name: { required: true, minlength: 3 }, 
      email: { required: true, email: true }, 
      password: { password: "#name" }, 
      password_confirm: { required: true, equalTo: "#password" } 
     }, 
     messages: { 
      password_confirm: { 
       required: "Repeat your password", 
       minlength: jQuery.format("Enter at least {0} characters"), 
       equalTo: "Enter the same password as above" 
      } 
     } 
}) 

문제는 password_confirm.required 메시지에있다.

jQuery.extend(jQuery.validator.messages, { 
    required: "Dit is een verplicht veld.", 
    remote: "Controleer dit veld.", 
    email: "Vul hier een geldig e-mailadres in.", 
    url: "Vul hier een geldige URL in.", 
    date: "Vul hier een geldige datum in.", 
    dateISO: "Vul hier een geldige datum in (ISO-formaat).", 
    number: "Vul hier een geldig getal in.", 
    digits: "Vul hier alleen getallen in.", 
    creditcard: "Vul hier een geldig creditcardnummer in.", 
    equalTo: "Vul hier dezelfde waarde in.", 
    accept: "Vul hier een waarde in met een geldige extensie.", 
    maxlength: jQuery.format("Vul hier maximaal {0} tekens in."), 
    minlength: jQuery.format("Vul hier minimaal {0} tekens in."), 
    rangelength: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."), 
    range: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."), 
    max: jQuery.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."), 
    min: jQuery.format("Vul hier een waarde in groter dan of gelijk aan {0}."), 
    password_confirm: { 
          required: "Herhaal uw wachtwoord", 
          minlength:jQuery.format("Vul hier maximaal {0} tekens in."), 
          equalTo: "Vul hier hetzelfde wachtwoord als hierboven in." 
        } 
    } 
}); 

을하지만 아무 소용이 :

나는 이것을 시도했습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?

답변

0

그래서 나는 이것을 어떻게하는지 알아 냈습니다. 솔루션 (또는 적어도 내 솔루션)은 유효성 검사 플러그인에 대한 규칙 추가 방법을 사용했습니다. 먼저 기본 메시지를 모두 추가 한 다음 국제화 플러그인을 사용하여 사용자 정의 국제 메시지가있는 파일을로드하십시오.

관련 코드 블록,

의 index.php :

... 
<script type="text/javascript" src="script.js"></script> 
<script type="text/javascript">$.localise('validation/messages', {language: "<?=$language?>"});</script> 
... 

script.js :

$(document).ready(function() { 
    var registrationForm = $('form:first'); 
    registrationForm.validate({ 
     onkeyup: false, 
     errorClass: 'error', 
     validClass: 'valid', 
     rules: { 
      name: { required: true, minlength: 3 }, 
      email: { required: true, email: true }, 
      password: { password: "#name" }, 
     } 
    }); 

    addCustomMessages(); 
}); 

메시지-KO-US.js :

function addCustomMessages() 
{ 
    $("#password_confirm").rules("add", { 
    required: true, 
    equalTo: "#password", 
    messages: { 
     required: "Repeat your password", 
     minlength: jQuery.format("Enter at least {0} characters"), 
     equalTo: "Enter the same password as above" 
    } 
    }); 
} 

메시지 -nl-NL.js :

jQuery.extend(jQuery.validator.messages, { 
    required: "Dit is een verplicht veld.", 
    remote: "Controleer dit veld.", 
    email: "Vul hier een geldig e-mailadres in.", 
    url: "Vul hier een geldige URL in.", 
    date: "Vul hier een geldige datum in.", 
    dateISO: "Vul hier een geldige datum in (ISO-formaat).", 
    number: "Vul hier een geldig getal in.", 
    digits: "Vul hier alleen getallen in.", 
    creditcard: "Vul hier een geldig creditcardnummer in.", 
    equalTo: "Vul hier dezelfde waarde in.", 
    accept: "Vul hier een waarde in met een geldige extensie.", 
    maxlength: jQuery.format("Vul hier maximaal {0} tekens in."), 
    minlength: jQuery.format("Vul hier minimaal {0} tekens in."), 
    rangelength: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."), 
    range: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."), 
    max: jQuery.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."), 
    min: jQuery.format("Vul hier een waarde in groter dan of gelijk aan {0}.") 
}); 

jQuery.extend(jQuery.validator.passwordRating.messages, { 
    "similar-to-username": "Lijkt te veel op naam", 
    "too-short": "Te kort", 
    "very-weak": "Erg zwak", 
    "weak": "Zwak", 
    "good": "Goed", 
    "strong": "Sterk" 
}); 

function addCustomMessages() 
{ 
    $("#password_confirm").rules("add", { 
    required: true, 
    equalTo: "#password", 
    messages: { 
     required: "Herhaal uw wachtwoord", 
     minlength: jQuery.format("Enter at least {0} characters"), 
     equalTo: "Enter the same password as above" 
    } 
    }); 
} 
관련 문제