2011-02-11 3 views
3

필드 힌팅과 함께 jQuery 유효성 검사 플러그인 (http://docs.jquery.com/Plugins/Validation/)을 사용하려고합니다.동일한 TIme에서 jQuery 유효성 검사 및 필드 힌트 사용

문제는 필드 힌팅이 텍스트를 value 속성에 넣고 value 속성에 텍스트가 있기 때문에 유효성 검사 플러그인이 잘못된 것이 없음을 알 수 있습니다.

필자는 필드가 비어 있거나 필드 힌트와 동일한 텍스트가 필드에 포함되어 있으면 유효성 검사 오류를 던져야한다고 생각했습니다. 즉, 누군가가 이름 필드에 "First Name"을 입력했다면 오류가 발생할 것입니다.

코드는?

감사합니다!

도론을 암시와 함께 유효성 검사를 사용하는 우아한 방법은

답변

3

은 "암시"코드 두 종류가 있습니다 거기에 (더 잘 알려 워터 마크 또는 장소로 사용 이전 텍스트) : 필드의 값을 대체하는 요소와 입력에 대해 일종의 요소를 배치하여 텍스트가 입력 내에있는 것처럼 보이게하는 요소.

첫 번째 종류를 사용하고 있다고 가정하기 때문에 이러한 종류의 문제를 완전히 피하고 두 번째 방법을 사용하는 플러그인으로 전환하는 것이 좋습니다. this one과 같이 이러한 방식으로 작동하는 많은 플러그인이 있습니다. 작동 방식을 반드시 읽어보십시오.

힌팅 코드를 변경할 수없는 경우 두 가지 대안이 있습니다. 모두 이상적 아니지만, 아마 하나는 당신에게 더 적합 할 것이다 : 어떤 선택을 취소 모든 입력을 통해에

지우기 값은 힌트 코드 내에서

를 제출 양식의 submit 이벤트에 결합하고, 루프를 그 힌트와 같은 값을가집니다.

이 방법의 문제는이 검증 플러그인이 초기화됩니다 전에 을 실행해야한다는 것입니다. 또한 입력 할 때 입력란 유효성 검사를 수행하지 않습니다. 또한 힌트 텍스트를 다시 입력하기 위해 유효성 검사 후에 입력을 다시 확인해야합니다.

오버라이드 (override)하는 .val() 검증 플러그인이 jQuery를 사용하기 때문에 값이 힌트 동일한 경우

, 당신은 ''를 반환하는 jQuery의 .val() 기능을 오버라이드 (override)하는 수

var oldVal = $.fn.val; 
$.fn.val = function() { 
    var returnVal = oldVal.call(this); 
    if (returnVal == hintVal) returnVal = ''; 
    return returnVal; 
}; 

명백한 단점 이 플러그인은 입력 값을 검색하는 데 항상 .val()을 사용해야합니다.

+0

감사합니다. 그러나 현재의 유효성 검사 코드에이 코드를 적용하는 방법을 알아내는 데 어려움을 겪고 있습니다. 여기에 포함 된 구문은 jQuery 유효성 검사 플러그인의 함수 초기화 코드처럼 보이지 않습니다. 또한 코드에서 이전에 선언해야하는 변수가 hintVal입니까? – Doron

+0

@Doron, 그 코드는 jQuery가로드 된 후 어느 위치 에나 배치되어야합니다. 예, 'hintVal'은 힌트 값을 나타내는 변수로 대체해야합니다.힌트가 요소의 "힌트"속성에 있다고 말하면,'hintVal'을'this.attr ('hint')'로 대체하십시오. –

+0

HTML5 표준의 자리 표시 자 속성을 사용하는 것이 가장 좋습니다. 현대의 모든 브라우저는 Internet Explorer를 제외하고는이를 사용합니다. 나는 몇 년 전에 브라우저 전쟁에서 넷스케이프를 통해 IE쪽으로 전환하는 것을 유감스럽게 생각한다. :( – will824

관련 문제