动态添加选择列表没有正确的样式

时间:2012-05-07 21:00:36

标签: jquery asp.net-mvc-3 razor jquery-chosen

我正在使用ajax获取部分视图的HTML,其中包含一个下拉列表,我希望使用Chosen jQuery插件进行样式设置。我动态添加的第一个是正确的样式,但所有其他成为链接,并没有得到适当的样式/功能。

在行中添加后,我使用:

$(".chosen").last().css('width', '150px').chosen();

该元素确实开始正确设置样式,但它并没有完全正确。这是输出。

<div id="SelectedRate_chzn" class="chzn-container" style="width: 150px;">
    <a href="javascript:void(0)" class="chzn-single chzn-default">
        <span>Select an Option</span>
        <div><b></b></div>
    </a>
    <div class="chzn-drop" style="left:-9000px;">
        <div class="chzn-search">
            <input type="text" autocomplete="off">
        </div>
        <ul class="chzn-results"></ul>
    </div>
</div>

我认为我的部分观点没有任何问题,但如果您需要其他内容,请在下方发表评论。

1 个答案:

答案 0 :(得分:1)

通过对话框向现有表单添加记录时我遇到了同样的问题,我设法按如下方式执行此操作:

成功调用ajax之后,我在原始选择元素中添加新选项并触发 liszt:updated 事件,以选择重新读取select元素和更新自己。

例如: ajax调用返回要添加为json string

的新联系人数据
{ id:123, label:'new contact name' }

在选择中附加一个新选项:

$('select#contact_id').append('<option value='+data.id+'>'+data.label+'</option>')

触发事件(您可以将其链接到上一个电话)

$('select#contact_id').trigger('liszt:updated');

希望这能帮到你!

亲切的问候