2010-05-17 93 views
2

我在errorplaceplace下使用insertBefore來添加驗證消息,每個消息都在下面,因爲我希望消息的順序從上到下。jQuery,insertBefore,驗證,錯誤信息的放置

我在父元素的最底部使用了一個隱藏的輸入,以便爲insertBefore參數提供一個元素。

有沒有辦法從底部插入而不使用虛擬隱藏元素?

如果我使用絕對定位,可能會出現空白,例如3個堆疊的消息,中間的消息因缺少絕對定位而崩潰。

更新

所以,如果我想要的「ZZZ」之前插入,是有辦法做到這一點沒有「ZZZ」?

<div> 
    <input id="zzz" type="hidden"> 
</div> 

回答

1

我嘗試追加,並appendTo。我同意他們應該工作,他們也有,但在驗證插件的上下文中,出於某種原因,這兩個函數都使用匹配元素的父代而不是匹配的元素,並追加到錯誤的元素。此外,驗證包裝功能停止使用附加。

我收起來替換了虛擬元素,並向上移動了一個正在使用的元素,並且被insertBefore卡住了。

這工作:

errorPlacement: function(error, element) { 
    error.insertBefore("#zz") 
    error.wrap("<p>") 

這沒有 - 它追加到#zz的家長和保鮮功能沒有工作。

errorPlacement: function(error, element) { 
    ("#zz").append(error); 
    error.wrap("<p>"); 
1

如果你想插入沒有隱藏輸入的div,你將需要能夠找到你想要插入的div的引用,然後使用$ .append()函數。

$('ref-to-div').append('<span>message</span>');