2012-09-27 3 views
0

내 Jquery 코드는 기본적으로 복사하여 붙여 넣기시 텍스트 상자의 값을 확인합니다. 이 코드는 여러 페이지의 여러 입력 필드에 적용됩니다. 모든 페이지가 모든 페이지에이를 작성하는 대신 일반 자바 스크립트 파일과 일반 레이아웃 페이지Jquery 코드를 일반화 하시겠습니까?

var regex = /^[A-Za-z0-9AEIOUaeiou\.\-\~\`\'']*$/; 
$('#InputField1').bind('input propertychange', function() { 
    var value = $(this).val(); 
    if (!regex.test(value)) { 
     $(this).val(""); 
    } 
}); 

를 사용,이 코드는보다 일반적인 만들 수있는 방법이 있습니까? 즉, 코드의 다음 부분을 레이아웃 페이지 또는 JavaScript 페이지의 어딘가에 한 번만 쓸 수 있습니까?

var value = $(this).val(); 
if (!regex.test(value)) { 
    $(this).val(""); 
} 

답변

1

이것은 jQuery에 대한 멋진 점 중 하나입니다.

$('#InputField1').validatePropertyChange(); 

을 그리고 당신은 또한 같은 ID를 체인 할 수 있습니다 : 당신은 글로벌 자바 스크립트 파일에서이 작업을 수행 할 수 있습니다 단지

(function($){ 
$.fn.validatePropertyChange = function() { 

    return this.each(function() { 
     var self = $(this); 
     var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū\.\-\~\`\'']*$/; 
      $(self).bind('input propertychange', function() { 
      var value = $(this).val(); 
      if (!regex.test(value)) { 
        $(this).val(""); 
      } 
      }); 
    }); 
}; 
})(jQuery); 

를 다음 전화

$('#InputField1, #InputField2').validatePropertyChange(); 

와 CSS 선택기를 사용 too

$('.required-field').validatePropertyChange(); 
+0

감사합니다.이 작품이 가장 좋습니다. –

3

모든 것을 일반화하십시오. 모든 유효성 검사 요소는 동일한 CSS 클래스 (예 : .requires-validation)를 인식해야합니다. 그런 다음 일반적인 방법으로 선택할 수 있습니다.

var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū\.\-\~\`\'']*$/; 
    $('.requires-validation').bind('input propertychange', function() { 
     var value = $(this).val(); 
     if (!regex.test(value)) { 
      $(this).val(""); 
     } 
    });