2013-03-16 11 views
6

Ich füge die folgende Regel zu einem vorhandenen jQuery Validate-Skript mit extension hinzu, aber dieses Snippet bewirkt, dass es bricht und überhaupt nicht validiert wird. Ich habe jede mögliche Kombination von Kommas vorher und nachher versucht, und ich habe auch versucht, die accept Methode mit Mimetypen zu verwenden, aber bisher hat nichts funktioniert. Wenn ich dieses Snippet (und den Kommentar in der Zeile davor) auskommentiere, funktioniert der Code perfekt, aber wenn er hinzugefügt wird, bricht er ab.jQuery Validieren der Erweiterungsmethode funktioniert nicht

Here's a jsFiddle mit dem Code wie es ist (funktioniert nicht), und here's one mit genau dem gleichen Code, außer das Snippet ist auskommentiert (funktioniert gut).

Das Snippet selbst:

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

Der vollständige Code:

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

Die Syntax sieht mir richtig. –

+0

Das habe ich mir auch gedacht. Ich habe es wiederholt überprüft und es sieht gut aus für mich. Der Abschnitt für die spezifische Erweiterung sieht ebenfalls korrekt aus [gemäß den Dokumenten] (http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension). – vaindil

+0

Getestet mit mehreren Versionen des Plugins und es scheint wirklich kaputt http://jsfiddle.net/ult_combo/4jMHZ/ –

Antwort

15

Das ist, weil the extension rule/method nicht Teil der jQuery Validate-Plugin standardmäßig ist.

Sie müssen das jQuery Validate-Plugin additional-methods.js file verwenden, wenn Sie die extension-Regel verwenden möchten.

Es scheint jetzt ...

http://jsfiddle.net/tMRer/

zu funktionieren
+0

Habe nicht gemerkt, dass das überhaupt eine Sache war. Danke für Ihre Hilfe! – vaindil

+0

Hinweis: Die Bibliothek wurde seither aktualisiert und die additional-methods.js wurde aufgeteilt. Suchen Sie nach der Datei extension.js. – Marcel

+0

@Marcel, [wo siehst du das?] (Https://jqueryvalidation.org) Ich denke du verwirrst die Tatsache, dass der Entwickler auch alle Methoden auf GitHub als separate Dateien zur Verfügung stellt. Ansonsten ist ['extension' noch Teil der' additional-methods.js' Datei (https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.js). – Sparky

Verwandte Themen