2012-12-19 15 views
8

JQuery 유효성 검사 플러그인 버전 1.9.0의 출시 이후 숨겨진 필드는 유효성 검사에서 자동으로 제외되었습니다 [source].JQuery 유효성 검사 : 숨겨진 필드 유효성 검사

release notes에 따르면이 문제를 해결하는 방법은 유효성 검사 기능에 ignore: []을 설정하는 것입니다.

1.10.0 버전을 사용하는 경우 display: none 또는 visibility: hidden을 사용하여 숨겨진 입력 필드에 사용할 수 없습니다.

내 유효성 검사 클래스를 사용하여 (예를 들어, class="required")을 수행하고 검증 기능은 매우 기본이다 :

JQuery와

$("form").validate({ 
    ignore: [], 
    errorPlacement: function(error, element) { 
     error.appendTo($('#error-message')) 
    }, 
    invalidHandler: function() { 
     //do something 
    }, 
    submitHandler: function() { 
     //do something else 
    } 
}); 

근무 예 : http://jsfiddle.net/fbCVY/

수있는 사람 지점을 내가 어디로 잘못 가고 있니?

+0

Firefox 17.0.1에서 jsfiddle을 실행할 때 입력 필드를 숨기는 CSS를 제거한 후에도 '제출'버튼은 항상 콘솔에 '오류 없음'을 표시합니다. 내가 뭔가를 놓친 건지, 아니면 jsfiddle이 실제로 유효성 검사를 실패하지 않았는가? – TLS

답변

6

idname 고유 한 속성을 각각 input 태그에 제공해야 유효성 검사 플러그인이 필드를 찾아서 구분할 수 있어야한다고 생각합니다. 폼의 첫 번째 필드가 전달되고 그 결과가 다른 두 필드에 사용되기 때문에 두 개의 "숨겨진"필드가 유효성 검사에 실패하지 않습니다.

+1

[여기는 작동하는 jsfiddle입니다] (http://jsfiddle.net/fbCVY/1/) – TLS

+0

+1 멋진데 - 조금 이상하게 보입니다. 솔루션을 가져 주셔서 감사합니다! –

+2

그냥 입력 이름이 필요합니다. –

2

는 규칙을보십시오 :

$("form").validate({ 
    ignore: "", 
    rules: { 
     name: ["aa", "ee"] 
    }, 
    errorPlacement: function(error, element) { 
     error.appendTo($('#error-message')) 
    }, 
    invalidHandler: function() { 
     //do something 
    }, 
    submitHandler: function() { 
     //do something else 
    } 
}); 

Jsfiddle

인사말.

+0

고마워요. 실제로 필요한 규칙이 아니며, 문제를 일으키는'name' 속성을 생략했습니다. (그래서 jsfiddle가 작동하지만,'name' 속성을 추가했기 때문입니다 입력이 아니라 규칙을 필요로) : http://jsfiddle.net/fbCVY/14/ –

+1

좋아, 속성 "이름"이 해결됩니다. –