2013-06-25 78 views
4

我使用JQuery驗證插件來驗證一個表單號,我怎麼可以把輸入按鈕下返回的錯誤信息,我無法實現,簡單的jQuery驗證 - 自定義位置錯誤信息放置

這裏是我的問題,我需要什麼樣的形象,請您檢查 - http://i.imgur.com/Gt5aNxs.png

請建議我如何把錯誤信息在自定義事業部的按鈕下,而不是默認的下方。

這裏是我的代碼:

<section id="contact" class="content"> 
      <div class="container"> 
       <h2>Contact Form Demo</h2> 
       <div class="row"> 
        <div class="span12 contact-form"> 

         <form action="mail.php" method="POST" class="form-horizontal contact-form" id="contact-form"> 
          <!--<?php $formKey->outputKey(); ?> --> 
          <fieldset> 

           <div class="control-group"> 
           <label class="control-label" for="inputPhone">Phone</label> 
           <div class="controls"> 
            <input class="input-80" name="phone" type="text" id="inputPhone" placeholder="inc. country &amp; area code"> 
           </div> 
           </div> 


           <div class="control-group"> 
           <div class="controls"> 
            <button type="submit" value="Send" class="btn" id="btn-place">Send!</button> 
           </div> 
           <div >place here</div> 
           </div> 
          </fieldset> 
         </form> 
        </div> 
       </div> 
      </div> 
     </section> 

     <!-- javascript --> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script src="js/jquery.validate.min.js"></script> 



     <script> 

      // contact form validation 
      $(document).ready(function(){ 

      $('#contact-form').validate(
       { 
        rules: { 
        name: { 
         minlength: 3, 
         required: true 
        }, 
        email: { 
         required: true, 
         email: true 
        }, 
        phone: { 
         minlength: 11, 
         required: false, 
         number: true 
        }, 
        subject: { 
         minlength: 3, 
         required: true 
        }, 
        message: { 
         minlength: 20, 
         required: true 
        } 
        }, 
          highlight: function(label) { 
        $(label).closest('.control-group').addClass('error'); 
        }, 
        success: function(label) { 
        label 
         .text('OK!').addClass('valid') 
         .closest('.control-group').addClass('success'); 
        } 
       }); 

       // contact form submission, clear fields, return message,script no shown here 

     </script> 
+2

嘗試你的代碼限制到相關的位(在這種情況下,你可能只需要爲我們展示了'phone'規則) – Ryley

回答

19

所有你需要做的就是指定你的選擇的errorLabelContainer並指定要在錯誤進入格:

$('#contact-form').validate({ 
    //all your other options here 
     errorLabelContainer: '#errors' 
}); 

然後,只需請確保你指定你的place here股份有這樣的編號errors

在此處查看一個工作示例:http://jsfiddle.net/ryleyb/aaEFQ/(請注意,我還指定了wrapper選項,如果存在多個錯誤,您可能需要該選項)。

+1

我用解決的問題以不同的方式:errorPlacement – CodeGeeek

+0

您能否給我建議如何僅在驗證後ajax POST LATER? – CodeGeeek

+0

使用Validate的submitHandler選項 - 只有當表單有效時纔會觸發它。 – Ryley

-1
errorPlacement: function(error, element) { 
    if((element.attr('name') === 'color[]')){ 
    error.appendTo("div#errors"); 
    } 
    else if(element.attr('name') === 'font[]'){ 
    error.appendTo("#font-error"); 
    } 
    else{ 
    element.before(error); 
    } 
} 
+0

顏色[]'或字體[]是複選框的名稱 div#錯誤或#字體錯誤是div你想顯示你的自定義錯誤信息 –

+0

你應該[編輯]該信息到帖子中,不要離開它作爲評論。 – Teepeemm

+0

歡迎來到Stack Overflow!雖然這個答案可能是正確和有用的,但如果你[包括一些解釋一起](http://meta.stackexchange.com/q/114762/159034)來解釋它是如何幫助解決這個問題的話,它是首選。如果有變化(可能不相關)導致其停止工作,讀者需要了解它曾經如何工作,這在未來變得特別有用。 –