2017-05-26 93 views
0

我在窗體中有幾個selectpicker元素,它們大約需要0.5秒才能渲染。這對我來說很好,但是直到它們被渲染出來之後,它們才搞亂了我的html結構。所以我只想在渲染後才顯示它們。 我的方法如下。我將所有selectpicker元素設置爲顯示:無,並添加了以下javascript代碼在渲染後顯示selectpicker

$("#state_selection").selectpicker(); 
$("#country_selection").selectpicker(); 
document.getElementById('state_selection_element').style.display = ''; 
document.getElementById('country_selection_element').style.display = ''; 

這基本上做了我想要的。除了兩個問題:

(1)這是不理想的,因爲render命令強制頁面加載後再次呈現表單。由於渲染大約需要0.5秒,因此並不理想。應該有更好的辦法

(2)渲染器在某種程度上搞亂了我的反饋驗證複選框的位置。它現在在selectpicker中顯示反饋,而不是在右側顯示反饋。

理想的解決方案是隻在初始頁面渲染後顯示selectpicker ......任何想法如何做到這一點?

回答

0

我找到了解決辦法

$('#state_selection').on('rendered.bs.select', function (e) { 
    document.getElementById('state_selection_element').style.display = ''; 
}); 
$('#country_selection').on('rendered.bs.select', function (e) { 
    document.getElementById('country_selection_element').style.display = ''; 
});