2013-03-16 25 views
6

Aşağıdaki kuralı extension kullanarak varolan bir jQuery Validate komut dosyasına ekliyorum, ancak bu kod parçacığı, kırılmasına ve tümüyle doğrulanmasına neden oluyor. Muhtemelen virgüllerin her bir kombinasyonunu önce ve sonra denedim ve mimetiplerle birlikte accept yöntemini kullanmayı denedim, ama şimdiye kadar hiç bir şey işe yaramadı. Bu pasajı (ve ondan önceki satırdaki yorum) yorumluyorsam, kod mükemmel çalışır, ancak bunu eklemeniz kırılmaya neden olur. Here's a jsFiddle kodunun olduğu gibi (çalışmıyor) ve here's one snippet'in dışında aynı kodla birlikte yorumlanır (iyi çalışır).jQuery Doğrulama yöntemi çalışma yordamı çalışmıyor

pasajı kendisi:

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

tam kodu:

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

sözdizimi bana doğru bakıyor. –

+0

Ben de öyle düşündüm. Tekrar tekrar kontrol ettim ve bana iyi görünüyor. Belirli bir uzantı bölümü de doğru görünüyor, [docs'a göre] (http://docs.jquery.com/Plugins/Validation/CustomMethods/extension#extension). – vaindil

+0

Eklentinin birden çok sürümü ile test edildi ve gerçekten bozuk görünüyorsa http://jsfiddle.net/ult_combo/4jMHZ/ –

cevap

15

the extension rule/method varsayılan olarak jQuery doğrula eklentisi bir parçası değildir çünkü bu.

extension kuralı'nı kullanmak istiyorsanız jQuery Validate eklentisinin additional-methods.js file'u eklemelisiniz.

Artık çalışıyor görünüyor ...

http://jsfiddle.net/tMRer/

+0

Bunun bir şey olduğunu bile bilmiyordum. Yardımın için teşekkürler! – vaindil

+0

Not: kütüphane güncellendi ve ek-methods.js ayrıldı. Extension.js dosyasına bakın. – Marcel

+0

@Marcel, [nerede görüyorsunuz?] (Https://jqueryvalidation.org) Bence geliştiricinin GitHub'da tüm yöntemleri ayrı dosyalar olarak kullanabileceği gerçeğini karıştırıyor olabilirsiniz. Aksi takdirde, ['extension' hala' additional-methods.js' dosyasının bir parçasıdır] (https://cdn.jsdelivr.net/npm/[email protected]/dist/additional-methods.js). – Sparky

İlgili konular