2012-07-11 24 views
0

我正在使用jQuery驗證,並且我有一個窗體拆分成部分。在提交時驗證,我返回包含所有錯誤的錯誤框方法。我希望能夠將它們指定爲鏈接,以便單擊錯誤將使用戶訪問該字段。可能開箱即用?jQuery驗證並將表單錯誤鏈接到它們各自的字段

JS:

$('#form').validate({ 
    rules: { 
     firstname: {required: true}, 
     lastname: {required: true}, 
     email:  {required: true}, 
    }, 
    messages: { 
     firstname: {required: "Step 2: Your first name is required."}, 
     lastname: {required: "Step 2: Your last name is required."}, 
     email:  {required: "Step 2: Your email is required."}, 
    }, 
    errorContainer: "#error_container", 
    errorLabelContainer: "#error_container ul", 
    wrapper: "li", 
    submitHandler: function() { 
      ajax('{{=URL('new_post')}}', 
    } 
}); 

它產生像看起來HTML:

<div id="error_container"> 
    <ul><li><label for="firstname" generated="true" class="error_two" style="display: inline;">Step 2: Your first name is required.</label></li></ul></div> 

我想這一點,如果在所有可能鏈接到名字字段。謝謝。

編輯:我看到我沒有足夠好的解釋自己。在HTML我想生成會像:

<div id=error_container"> 
    <ul> 
     <li> 
      <a href="link_to_field">Your first name is required.</a> 
     </li> 
    </ul> 
</div> 

凡創建點擊錨回到各自的領域。任何方式來做到這一點?我已經看到下面列出的「關注錯誤」方法,這當然是一個很好的方法,但我希望能夠讓用戶點擊任何錯誤並按照任意順序進入這些字段選擇。它以多步驟的格式工作,這就是爲什麼我想這樣做,否則,它將一切正常,他們可以正常點擊每個字段。

回答

1
  • 的快捷方式是使用驗證選項focusInvalid,它將集中的最後一個活動或第一個無效元素上提交

    $('#form').validate({ 
        . 
        focusInvalid: true, 
        . 
    }); 
    
  • 很長的路要走,它應該達到你想要做什麼,是利用showError回調的驗證選項

    $('#form').validate({ 
        . 
        showErrors: function(errorMap, errorList) { 
         // errorMap - the map of errors 
         // errorList - array of errors 
         // construct the list of error items with links that focus on the invalid elements 
    
         // default behavior 
         this.defaultShowErrors(); 
        }, 
        . 
    } 
    
+0

編輯:剛剛意識到你的第二個方法是什麼這樣做。讓我試試看。謝謝。 – 2012-07-20 14:38:43

+0

完美。奇怪的是,它仍然會生成標籤,但點擊它們會使您返回到相應的字段。添加一些懸停樣式,它看起來與錨點完全相同。給你50分。 – 2012-07-20 14:46:30

+0

好,如果你註釋掉'this.defaultShowErrors();',默認的標籤就不會顯示。不知道這個錯誤標籤的功能實際上是否會將您帶回各自的領域。我的建議是試圖使用'errorMap'或'errorList'來構造一個html無序列表,其鏈接將會聚焦到一個特定的字段。 – 2012-07-20 16:36:57

相關問題