2013-06-23 44 views
0

代碼似乎掛接(這樣)jQuery.validationEngine v2.6.1僅有時會驗證嗎?

jQuery("#contactForm").validationEngine(); 

,因爲這將驗證和引發錯誤氣泡,如果:

  • 你標籤出所需場而沒有任何輸入
  • 你鍵入至少一個字符到需要更多字段,然後單擊提交按鈕

但它不會驗證並引發錯誤如果除了點擊提交按鈕之外什麼都不做,就會冒泡。在這種情況下,它只是提交。一旦你點擊該領域或輸入任何東西,它似乎工作。

我能找到什麼,我錯了配置?

的HTML:

<form class = "contactform" id = "contactForm"> 
    <fieldset> 
     <div class="contactform-name contactform-field"> 
      <label class="contactform-label" for="contactform-name">Name: 
       <br> 
      </label> 
      <input class="validate[required,minSize[8]] contactform-input" type="text" id="contactform-name" name="name" /> 
     </div> 

     <div class="contactform-email contactform-field"> 
      <label class="contactform-label" for="contactform-email">Email Address:<br></label> 
      <input value class="validate[required,custom[email]] contactform-input" type="email" id="contactform-email" name="contactform-email" /> 
     </div> 

     <div class="contactform-text contactform-field"> 
      <label class="contactform-label" for="contactform-text">Message: 
       <br> 
      </label> 
      <textarea class="validate[required,minSize[12]]contactform-input" name="text" id="contactform-text" > </textarea> 
     </div> 

     <input class="contactform-button" type="submit" name="submit" value="Send" /> 

    </fieldset> 
</form> 

中的JavaScript(它的流星運行):

Template.Contact.rendered = function() { 
    jQuery("#contactForm").validationEngine(); 
} 
+0

你可以發佈更多的代碼(HTML和JavaScript)你'contactForm'形式? – leonhart

+0

我用一些代碼片段更新了原始問題。 –

+0

你可以創建一個jsfiddle嗎?似乎提交沒有綁定到validationEngine,但不能告訴你爲什麼從你的代碼。 – leonhart

回答

0

我從來沒有使用這個引擎,但是從文檔我發現, '連接' 將附加驗證者form.submit。它可以如此簡單嗎?

https://github.com/posabsolute/jQuery-Validation-Engine#attach

編輯:

你也可以做的東西,以提交 - 事件(如頂端的上方也無濟於事)。

像這樣(沒有測試,但是應該把你在正確的路徑):

Template.templateName.events({ 
    'submit': function(event) { 

     // Prevent the submit with preventDefault() 
     event.preventDefault(); 

     // Do something to check the submit etc. 

    } 
}); 
+0

文檔確實說「沒有任何參數,init()和attach()方法會自動調用。」但我會嘗試顯式調用attach()。不過,它似乎是附加的,因爲它會在某些條件下進行驗證。 –

+0

用流星中的提交事件編輯答案。 –

+0

這是一個很好的想法,但我已經在那裏爲表單處理:'''Template.ContactForm.events({ \t '提交表單':函數(事件){ \t \t event.preventDefault(); \t \t爲了= '[email protected]'; \t \t組長= '從消息 '; \t \t從jQuery的=(event.target).find('[名稱=郵件]')。VAL();客戶端名稱= jQuery(event.target).find('[name = name]')。val();消息= jQuery(event.target).find('[name = text]')。val(); \t \t Subject = Leader + ClientName; \t \t Meteor.call( 'sendEmail', \t \t \t要, \t \t \t從, \t \t \t主題, \t \t \t消息 \t \t); \t \t Meteor.Router.to('ThankYou'); \t} })''我在插件的GitHub頁面輸入了一個問題。 –