2013-05-24 2 views
0

죄송합니다. 이전에 브라우저에서 작업 한 경험이 없지만 JQuery 1.7.1을 1.8.3으로 업그레이드 한 후에 단위 테스트에 실패했습니다. 나는이 실패를 고쳐야 만한다. 우리는 그런 html 페이지가 있습니다. 업그레이드 후 유효성 검사가 작동하지 않습니다. JQuery

  <li class="my-form-item"> 
      <label for="my_data_add_description" data-localize="my_data.add.description">Description</label> 
      <div class="my-form-content my-has-help"> 
       <span type="text" id="my_data_add_description" name="data_description"></span> 
       <label for="my_data_add_description" class="my-optional">optional</label> 
       <label for="my_data_add_description" class="my-help" data-localize="my_data.add.description_help">Description</label> 
      </div> 
      </li> 

그리고 자바 스크립트는 단위 테스트에서

var DATA_DESCRIPTION = 'data_description'; 

function getRules(formId) { 
    var rules = {}; 
    rules[DATA_DESCRIPTION] = { 
     maxlength: DataModel.DESCRIPTION_MAXLENGTH 
    }; 
} 

function getMessages(formId) { 
    var messages = {}; 
    messages[DATA_DESCRIPTION] = { 
     maxlength: Localizer.getString('data description maxLength') 
    }; 
} 

this.initValidator = function (formId) { 

    // Set validation defaults per the 'dialog' context 
    self.setDialogValidatorDefaults(); 

    validator = $(formId).validate({ 
     rules: getRules(formId), 
     messages: getMessages(formId) 
    }); 
}; 

Finally, we count the invalid elements number 

this.invalidElements = function(formId) { 
    $(formId).submit(); 
    return validator.invalidElements(); 
}; 

같다. my_data_add_description에 DESCRIPTION_MAXLENGTH + 1 'a'가 포함 된 문자열을 설정했습니다.

$(#my_data_add_description).val('aaa...a') // set DESCRIPTION_MAXLENGTH+1 'a' to my_data_description. 
expect(formValidator.invalidElements(formId)).toEqual(1); // now we have a invalid element 

이 테스트는 항상 실패하고 invalidElements는 항상 우리가 JQuery와 1.7.1 사용할 때이 코드는 잘 작동 0 반환하지만 우리는 1.8.3에 JQuery와 업그레이드 한 후 실패합니다. 이유를 이해할 수 없습니다. 누구든지 그것에 대해 알고 있거나 비슷한 문제가 있습니까?

+0

시나리오에 맞는 간단한 jsfiddle을 만들 수 있습니까? – dreamweiver

+0

Validator 플러그인 버전? – Gajotres

답변

0

jQuery validate은 jQuery 용 플러그인이므로 사용되지 않는 메소드와 함수를 사용하고있을 가능성이 큽니다. 이 문제를 해결하려면 사용중인 validate 플러그인을 업그레이드해야합니다.

사용중인 플러그인의 유효성을 확인할 수는 없지만 아마도 다음과 같을 수 있습니다. 업데이트하는 경우 here으로 업데이트 할 수 있습니다.

그러나 이렇게하기 전에 jQuery를 업그레이드하는 이유는 무엇입니까 ?? 최신 버전에는 최신 기능과 더 나은 방법이있을 수 있지만 최신 버전이 필요한 새 코드를 작성하지 않는 한 코드가 깨어 지므로 업그레이드하지 마십시오!

0

JQuery와 유효성 검사 플러그인의 현재 버전은 당신이 update it

을 할 수있는 플러그인 검사기의 이전 버전을 사용하는 경우이 JQuery와 1.6.4, 1.7.2, 1.8.3, 1.9.0을 지원 1.11.1입니다
관련 문제