4

서버 측에서 사용자 지정 ValidationAttributes를 사용하여 MVC 3 유효성 검사를 확장하고 사용자 정의 유효성 검사를 위해 html5 데이터 특성을 출력하도록 IClientValidatable을 구현했습니다. jQuery.validator.addMethod를 사용하여 클라이언트 측 유효성 검사를 추가했습니다. 마지막으로 html5 데이터 속성을 jQuery 유효성 검사기가 이해하는 형식으로 변환하는 어댑터를 작성합니다. jValue.validator.unobtrusive.adapters.add를 addSingleVal과 같은보다 간단한 함수 중 하나를 사용해야하므로 유효성 검사에 몇 가지 값이 필요합니다.파일 외부에서 jquery.validate.unobtrusive의 setValidationValues를 사용할 수 없습니까?

내 어댑터 내에서 setValidationValues ​​및 getModelPrefix와 같은 jquery.validate.unobtrusive 파일의 여러 함수를 사용하는 것이 유용 할 수 있지만 잘못 입력하지 않은 경우이 함수는 클로저 안에 있으므로 해당 함수 만 사용할 수 있습니다 폐쇄. 필자는 변경 될 수있는 마이크로 소프트 소유의 스크립트 파일에 내 사용자 정의 함수를 넣고 싶지 않습니다. 따라서 아무도 아이디어가 없으면 필자의 파일에서이 함수를 복제하는 것이 이상적이지 않습니다.

그래서 어떤 아이디어가 있고 다른 사람들은 무엇을합니까?

답변

2

나는 두려워하지 않습니다.
아시다시피 이러한 기능은 다음과 같이 구현할 수 있습니다 :

(function ($) { 
    ... 
    function setValidationValues(options, ruleName, value){ 
     //the implementation 
    } 
    ... 
}(jQuery)) 

은 한 개인 범위 내에서 정의 된이 기능으로 당신은 클래스 그 종류의 개인 기능, 아웃 사이드에서 액세스 할 수 없습니다. 이러한 종류의 함수를 정의하는 목적은 범위를 벗어난 함수에 액세스 할 수 없다는 것입니다.
minifier methods도 알고 있으니 FACT을 알고 최대한 js를 압축하는 데 사용하십시오. 축소 된 버전 jquery.validate.unobtrusive.min.js을 보면 더 이상 setValidationValues 기능이 아니라 (일부 문자) x 기능임을 증명합니다.

크기가 너무 짧아서 이러한 기능을 복사하고 붙여 넣을 수는 없습니다. minifier를 사용하면 200 bytes에 대해서이 기능과 다른 3 가지 기능을 사용할 수 있습니다. 이 200 바이트는 한 번만 사용됩니다. 당신은 당신이 함수의 이름을 조회하고 adapter.add(function(){//use their name here})에 배치 할 수있는 축소 된 버전을 사용하는 경우


그러나, 방법이, 그 사본을 알 것이다 및 붙여 넣기가 좋다.