2012-08-28 7 views
0

jQuery replace 함수를 사용하여 사용자가 숫자 및 하이픈을 전화 번호 필드에 입력 할 수 있도록합니다 (개인 웹 응용 프로그램 인 JS는 로그인 할 수 있어야합니다) .jQuery - '바꾸기'기능이 동작을 수행 할 때 감지합니다.

대체 기능이 실행 된 후 x 초 동안 입력에 CSS 클래스 (강조 표시)를 추가하여 사용자가 입력이 입력을 거부하고 있음을 시각적으로 확인하고 싶습니다.

바꾸기 기능이 활성화 된 후 x 초 동안 입력에 CSS 클래스를 추가하려면 어떻게해야합니까? (A 입력이 실제로 교체 한 경우에만)

$("#v_phone").bind('keyup blur',function(){ 
    $(this).val($(this).val().replace(/[^\d-]/g,'')); } 
); 
+0

'에서는 setTimeout (functionThatAddCssClass, 지연), '난이 도움이 될 것입니다 생각합니다. – Leri

답변

0

사용 setTimeout() :

$("#v_phone").bind('keyup blur',function(){ 
    var $this = $(this); 
    var currentValue = $this.val(); 
    var newValue = currentValue.replace(/[^\d-]/g,''); 
    if (currentValue != newValue) { 
     $this.val(newValue); 
     $this.addClass("alert"); // add class 
     var x = 5; 
     setTimeout(function() { 
     $this.removeClass("alert"); // remove class after x seconds 
     }, x * 1000); 
    } 
});​ 

DEMO.

0

는 jQuery가 아니라 기본 JavaScript입니다. 먼저 식을 테스트하고 교체가 필요한 경우 확인하고 다음 클래스를 발사 할 수

var reg = /[^\d-]/g; 

$("#v_phone").bind('keyup blur',function() { 
    var $this = $(this); 
    if(reg.test(this.value)) { 
     $this.addClass('highlight'); 
     setTimeout(function() { 
      $this.removeClass('highlight'); 
     },1000); // 1s 
     $this.val(this.value.replace(reg,'')); 
    } 
}); 

http://jsfiddle.net/HvGnf/

관련 문제