2012-03-29 1 views
4

은 이미 시도MVC3 소스를 편집하지 않고 jquery.validate.unobtrusive 대체 옵션을 사용 하시겠습니까? 하이라이트와 소스의 js 파일을 편집하지 않고 mvc3의 jquery.validate.unobtrusive를 사용하여 unhighlight 옵션을 대체 할 수있는 방법이 있는지

... 궁금 :

var elementToValidate = $(element); 
     var form = $(element.form); 
     if (form.length) { 
      //elementToValidate.valid(); 
      form.validate({ 
       highlight: function (element, errorClass, validClass) { 
        $(element).removeClass(errorClass); 
        $(element).closest('td').addClass('alert-error error'); 
       }, unhighlight: function (element, errorClass, validClass) { 
        $(element).removeClass(errorClass); 
        $(element).closest('td').addClass('alert-error error'); 
       } 
      }); 
     } 

하지만 하이라이트 난 내 스크립트에서 눈에 거슬리지 라이브러리를 제거하지 않는 한 unhighlight는 무시되지 않습니다 .. 내가 jquery.validate.unobtrusive.js의 소스를 편집하는 경우

는 그냥 완벽하게 작동하는 것 같다 :

function validationInfo(form) { 
     var $form = $(form), 
      result = $form.data(data_validation); 

     if (!result) { 
      result = { 
       options: { // options structure passed to jQuery Validate's validate() method 
        errorClass: "input-validation-error", 
        errorElement: "span", 
        errorPlacement: $.proxy(onError, form), 
        invalidHandler: $.proxy(onErrors, form), 
        messages: {}, 
        rules: {}, 
        success: $.proxy(onSuccess, form), 
        highlight: function (element, errorClass, validClass) { 
         $(element).removeClass(errorClass); 
         $(element).closest('td').addClass('alert-error error'); 
        }, unhighlight: function (element, errorClass, validClass) { 
         $(element).removeClass(errorClass); 
         $(element).closest('td').addClass('alert-error error'); 
        } 
       }, 
       attachValidation: function() { 
        $form.validate(this.options); 
       }, 
       validate: function() { // a validation function that is called by unobtrusive Ajax 
        $form.validate(); 
        return $form.valid(); 
       } 
      }; 
      $form.data(data_validation, result); 
     } 

     return result; 
    } 
사람이 소스를 수정하지 않고 옵션을 대체 할 수있는 방법을 마련 경우 그냥 궁금

..

건배

답변

0

당신은 JQuery와 유효성 검사기 기본 설정을 변경할 수 있습니다

$.validator.defaults.highlight = function (element, errorClass, validClass) { 
    $(element).removeClass(errorClass); 
    $(element).closest('td').addClass('alert-error error'); 
}; 
$.validator.defaults.unhighlight = function (element, errorClass, validClass) { 
    $(element).removeClass(errorClass); 
    $(element).closest('td').addClass('alert-error error'); 
}; 

onload 이벤트를 실행하기 전에 이것을 실행하십시오 (즉, $(document).ready()에서 이것을 호출하지 말고 직접 호출하십시오).

관련 문제