2013-03-16 3 views
6

extension을 사용하여 기존 jQuery 유효성 검사 스크립트에 아래 규칙을 추가했지만이 코드 조각이 깨져서 전혀 유효성을 검사하지 않습니다. 전후에 쉼표를 사용하여 가능한 모든 조합을 시도했으며, 또한 mimetype을 사용하여 accept 메소드를 사용해 보았지만 지금까지 아무 것도 작동하지 않았습니다. 이 스 니펫 (및 그 앞에있는 행의 주석)을 주석 처리하면 코드가 완벽하게 작동하지만이 코드를 추가하면 코드가 중단됩니다.jQuery 유효성 검사 확장 메서드가 작동하지 않습니다.

Here's a jsFiddle 코드는있는 그대로 (작동하지 않음)로, here's one은 코드가 정확히 동일한 코드로 주석 처리되어 있습니다 (잘 작동합니다).

코드 조각 자체 :

form1upload: { 
    extension: "jpg|jpeg|pdf|doc|docx|png" 
} 

전체 코드 :

jQuery(document).ready(function() { 
    jQuery("#grantapp").validate({ 
     errorClass:"errorlabels", 
     rules: { 
      form1name: "required", 
      form1building: "required", 
      form1position: "required", 
      form1phonex: "required", 
      form1besttime: "required", 
      form1projtitle: "required", 
      form1benefit: "required", 
      form1timeframe: "required", 
      form1relevance: "required", 
      form1description: "required", 
      form1amount: "required", 
      form1acceptchk: "required", 
      form1upload: { 
       extension: "jpg|jpeg|pdf|doc|docx|png" 
      } 
     }, 
     messages: { 
      form1name: "You must enter your name.", 
      form1building: "You must enter your building.", 
      form1position: "You must enter your position.", 
      form1phonex: "You must enter your phone extension.", 
      form1besttime: "You must enter the best time to contact you.", 
      form1projtitle: "You must give your project a title.", 
      form1benefit: "You must enter the number of students who will benefit.", 
      form1timeframe: "You must enter a time frame for this project.", 
      form1relevance: "<br />You must state how this project is relevant to education.", 
      form1description: "<br />You must provide a description of your project.", 
      form1amount: "You must enter a requested amount.", 
      form1acceptchk: "<span style=\"position:relative;top:-10px;\">You must accept the terms.</span>", 
      form1upload: "You may not upload this type of file." 
     }, 
     errorPlacement: function (error, element) { 
      if (element.attr("name") == "form1acceptchk") { 
       error.insertAfter("#tbl1"); 
      } else { 
       error.insertAfter(element); 
      } 
     } 
    }); 
}); 
+0

구문은 나에게 올바른 보인다. –

+0

그게 내가 생각한거야. 나는 그것을 반복적으로 점검했고 그것은 나에게 좋게 보인다. 특정 확장 섹션은 [docs에 따라] 올바르게 표시됩니다 (http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension). – vaindil

+0

여러 버전의 플러그인으로 테스트 한 결과 실제로 깨진 것 같아요. http://jsfiddle.net/ult_combo/4jMHZ/ –

답변

15

the extension rule/method 기본적으로 jQuery를 검증 플러그인의 일부가 아니므입니다.

extension 규칙을 사용하려면 jQuery Validate 플러그인의 additional-methods.js file을 포함해야합니다.

그것은 지금 작동하는 것 같군 ...

http://jsfiddle.net/tMRer/

+0

그게 뭔지도 몰랐는데. 도와 줘서 고마워! – vaindil

+0

참고 : 이후 라이브러리가 업데이트되었으며 additional-methods.js가 분리되었습니다. extension.js 파일을 찾으십시오. – Marcel

+0

@Marcel, [어디서 보입니까?] (https://jqueryvalidation.org) 개발자가 GitHub에서 모든 메서드를 별도의 파일로 사용할 수 있다는 사실을 혼동스럽게 생각할 수도 있습니다. 그렇지 않으면 ['extension'은 여전히'additional-methods.js' 파일의 일부입니다.] (https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.js). – Sparky

관련 문제