2013-03-16 6 views
6

dodaję reguły poniżej do istniejącego skryptu jQuery sprawdzania poprawności przy użyciu extension, ale ten fragment kodu powoduje, że łamią się i nie zatwierdzić w ogóle. Próbowałem każdej możliwej kombinacji przecinków przed i po, a także próbowałem użyć metody accept z typami MIME, ale nic dotąd nie zadziałało. Jeśli skomentuję ten fragment (i komentarz na linii przed nim), kod działa idealnie, ale dodanie tego powoduje, że się zepsuje.jQuery Walidacja metody rozszerzenie nie pracuje

Here's a jsFiddle z kodem jak jest (nie działa), a here's one z dokładnie tego samego kodu z wyjątkiem fragmentu jest wykomentowane (działa poprawnie).

Fragment sama:

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

pełny kod:

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

Składnia wygląda poprawna do mnie. –

+0

Tak też myślałem. Sprawdziłem to wielokrotnie i dobrze mi wygląda. Sekcja specyficznych rozszerzeń również wygląda poprawnie, [zgodnie z dokumentami] (http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension). – vaindil

+0

Testowany z wieloma wersjami wtyczki i naprawdę wydaje się uszkodzony http://jsfiddle.net/ult_combo/4jMHZ/ –

Odpowiedz

15

To dlatego the extension rule/method nie jest częścią wtyczki jQuery zatwierdź domyślny.

Musisz dołączyć wtyczkę jQuery Validate additional-methods.js file, jeśli chcesz użyć reguły extension.

Wydaje się, że obecnie pracuje ...

http://jsfiddle.net/tMRer/

+0

Nie zdawałem sobie sprawy, że to nawet coś. Dziękuję za pomoc! – vaindil

+0

Uwaga: biblioteka została zaktualizowana, a dodatek-methods.js został podzielony. Wyszukaj plik extension.js. – Marcel

+0

@Marcel, [gdzie to widzisz?] (Https://jqueryvalidation.org) Myślę, że możesz pomylić fakt, że programista udostępnia również wszystkie metody dostępne w GitHub jako osobne pliki. W przeciwnym razie ['extension' jest nadal częścią pliku' additional-methods.js'] (https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.js). – Sparky