은 "암시"코드 두 종류가 있습니다 거기에 (더 잘 알려 워터 마크 또는 장소로 사용 이전 텍스트) : 필드의 값을 대체하는 요소와 입력에 대해 일종의 요소를 배치하여 텍스트가 입력 내에있는 것처럼 보이게하는 요소.
첫 번째 종류를 사용하고 있다고 가정하기 때문에 이러한 종류의 문제를 완전히 피하고 두 번째 방법을 사용하는 플러그인으로 전환하는 것이 좋습니다. 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()
을 사용해야합니다.
감사합니다. 그러나 현재의 유효성 검사 코드에이 코드를 적용하는 방법을 알아내는 데 어려움을 겪고 있습니다. 여기에 포함 된 구문은 jQuery 유효성 검사 플러그인의 함수 초기화 코드처럼 보이지 않습니다. 또한 코드에서 이전에 선언해야하는 변수가 hintVal입니까? – Doron
@Doron, 그 코드는 jQuery가로드 된 후 어느 위치 에나 배치되어야합니다. 예, 'hintVal'은 힌트 값을 나타내는 변수로 대체해야합니다.힌트가 요소의 "힌트"속성에 있다고 말하면,'hintVal'을'this.attr ('hint')'로 대체하십시오. –
HTML5 표준의 자리 표시 자 속성을 사용하는 것이 가장 좋습니다. 현대의 모든 브라우저는 Internet Explorer를 제외하고는이를 사용합니다. 나는 몇 년 전에 브라우저 전쟁에서 넷스케이프를 통해 IE쪽으로 전환하는 것을 유감스럽게 생각한다. :( – will824