2013-02-07 81 views
0

我有一些問題讓我的代碼工作。用戶可以添加更多的輸入框,我需要它們全部進行驗證。奇怪的是,它是有效的,如果我刪除消息的一部分。jQuery驗證插件 - 所有輸入錯誤消息

$("input.ing").each(function(){ 
    $(this).rules("add", { 
     required: true, 
     messages: { 
      required: "Input a number" 
     } 
    });   
}); 

任何想法?

在此先感謝

樹脂

編輯:發現這是的jsfiddle做什麼是想要的,但是當我將代碼複製到文檔,這是行不通的! :( http://jsfiddle.net/jYwJE/

+0

正如你可以看到你的jsFiddle,這是你應該用來完成你所要求的代碼。你將不得不執行一些基本的故障排除......檢查你的文件逐行對jsFiddle,檢查所有包含文件的版本等。除非你能夠在這裏複製或演示這個問題,我們在這裏做...我的回答只是你的jsFiddle的另一個工作版本。 – Sparky

+0

「不起作用」是什麼意思?你的控制檯錯誤是什麼? – Sparky

+0

您尚未顯示創建這些新字段的代碼。它確保所有字段都有**唯一**名稱嗎?這很關鍵,否則驗證插件將失敗。 – Sparky

回答

1

報價OP:「用戶可以添加更多的輸入框,我需要他們都被驗證」

下面的代碼是不是你的jsfiddle更具體的結果表明,當用戶點擊一個按鈕,一個新的領域稱爲newfield被添加到形式,然後將rules are added dynamically到這個新的字段

$(document).ready(function() { 

    $('#myform').validate({ // initialize the plugin 
     rules: { 
      field1: { 
       required: true, 
       minlength: 5 
      }, 
      field2: { 
       required: true, 
       minlength: 5 
      } 
     } 
    }); 

    $('button#add').one('click', function() { 
     var field = '<input type="text" name="newfield" /><br />'; 
     $('#myform').prepend(field); 
     $('[name="newfield"]').rules("add", { 
      required: true, 
      messages: { 
       required: "this new field is now required" 
      } 
     }); 
    }); 

}); 

演示:http://jsfiddle.net/km6XE/

演示只說明瞭如何添加一個input領域。如果您希望用戶能夠添加更多input元素,則需要確保您的代碼爲每個新的input創建一個獨特name或者您將打破Validate插件。

+0

+1。或者你可以使用class =「required」而忘記添加規則 - http://jsfiddle.net/u7j9V/ –

+0

@politus,謝謝。這是事實,它同樣有效。對我而言,這是一個偏好問題,我喜歡儘可能將HTML和JavaScript保持分離。 (我也認爲jQuery Validiate新手更容易看到規則來自哪裏)。 – Sparky

相關問題