jQuery를 사용하여 MaxLength의 오류 메시지를 사용자 정의하는 방법 입력 한 문자 수를 표시하도록 유효성

StackOverflow https://stackoverflow.com/questions/1206705

문제

나는 원한다 maxlength jQuery 유효성 검사 검증 다음과 같은 오류 메시지를 표시합니다.

"{0} 문자 이상을 입력하지 마십시오. 현재 {1} 문자를 입력했습니다."

어디에 {1} 실제 금액의 자리 표시 자입니다. 이것을하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

나는 그렇게하는 간단한 방법이 있다고 생각하지 않지만 당신을위한 해결 방법을 찾았습니다. 나는 당신이 그 필드에 대한 자신의 검증기를 쓸 수 있다고 생각하지만 이것은 더 간단 할 수 있습니다.

기본 메시지를 변경하여 시작하십시오 maxlength 오류 :

$.extend($.validator.messages, {  
    maxlength: $.validator.format("Please enter no more than {0} characters. You've currently entered CHARS_NO characters.")
});

평소와 같이 유효성 검사를 유지하지만이 기능을 추가하십시오.

$('input').keyup(function () {
    var rules = $(this).rules();
    if (rules.maxlength !== undefined && !$(this).valid()) {
        var errorLabel = $('label[for=' + $(this).attr('id') + '][generated=true].error');
        errorLabel.text(errorLabel.text().replace('CHARS_NO', $(this).val().length));
        return false;
    }
});

여기에 있습니다 작동하는 데모 당신을 위한.

다른 팁

어떻게 검증을 유발하는지 잘 모르겠지만 maxlength an input 사용자가 해당 값이 나타내는 것보다 더 많은 문자를 입력하는 것을 배제합니다. 따라서 사용자에게 더 많은 문자를 입력했음을 알릴 필요는 없습니다. maxlength 그들은 단순히 그것을 할 수 없기 때문에.

추가 컨텍스트 및/또는 세부 사항을 제공 할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top