2017-05-26 66 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 = ''; 
});