2013-03-04 94 views
1

我使用jQuery Validation Plugin,我希望能夠根據有錯誤的元素類型動態確定errorElement。我知道,你可以在errorElement像這樣:jQuery驗證插件動態選擇錯誤元素

$("form").validate({ 
    errorElement: "div" 
}); 

不過,我想可以去改變它,這樣,如果該類型是一個複選框或單選按鈕,然後我可以使errorElementli。有誰知道如何做到這一點?謝謝!

回答

7

我在看the code in the pluginerrorElement選項只是尋找一個元素作爲其參數。由於errorElement沒有回調函數,我沒有看到直接的方式來實現你所要求的而不修改插件本身。

也許你可以用errorPlacement回調代替。

讓我們假設把它作爲label,然後用其他容器包裝它?或者使用errorElement將它們全部放在<span>之內,同時在任何容器中動態地使用errorPlacementwrap。見jQuery .wrap()

errorElement: 'span', 
    errorPlacement: function (error, element) { 
     var type = $(element).attr("type"); 
     if (type === "radio") { 
      // custom placement 
      error.insertAfter(element).wrap('<li/>'); 
     } else if (type === "checkbox") { 
      // custom placement 
      error.insertAfter(element).wrap('<li/>'); 
     } else { 
      error.insertAfter(element).wrap('<div/>'); 
     } 
    }, 

DEMO:http://jsfiddle.net/uLH4f/

+0

哇。很好的答案!謝謝:) – srchulo 2013-03-04 07:03:29

+0

不客氣。 – Sparky 2013-03-04 07:04:02