2

我之前已经实现了 Chosen,但是我在尝试让它在 MVC 3 中工作时遇到了一个问题。我不知道是什么原因造成的,但是元素呈现得很窄,我不知道为什么。我看了一遍,我无法弄清楚,我觉得我正在服用疯狂的药丸!谢谢!

这是一个截图

这是我的代码:

cshtml:

div id="ProducerData" style="display: none;">
                <h2>
                    Winery Information</h2>

                @Html.DropDownListFor(m => m.Producer.ProducerID, new SelectList(Model.Producers, "ProducerID", "Name"), "Please select a producer")
                <input type="button" id="btnNewProdcue" value="New Producer?" onclick="NewProducer(); return false;" />
                <table id="ProducerDataTable">

js:

$(document).ready(function () {

        SlideWidth = 650;
        SlideSpeed = 500;
        InitTab();


        $("#ProducerDataTable input[type=text]").addClass("DisabledTextInput");
        $("#ProducerDataTable input[type=text]").attr("disabled", true);

        $("#Producer_ProducerID").change(OnProducerChange);
        $("#UserTypes img").click(OnUserTypeClick);
        $("#UserObj_Country").change(OnCountryChange);
        $(".state").change(OnStateChange);
        SetNavigationDisplay();
        $("#UserObj_Phone").live("keypress", function (e) {
            if (e.which === 0) {
                e.preventDefault();
            }
        });

        $("#Producer_ProducerID").chosen();
    });
4

3 回答 3

4

代替

$("#Producer_ProducerID").chosen();

var opts = {};
if (!$("#Producer_ProducerID").is(':visible')) {
     opts["width"] = 'auto';
}
$("#Producer_ProducerID").chosen(opts);
于 2014-04-17T20:58:09.820 回答
2

我以前遇到过这个问题。这种display: none;"风格就是问题所在。您应该将其从 div 中删除,因为当页面呈现时, selected 会忽略未显示的元素。因此它不会产生它应该产生的东西。尝试在页面加载后隐藏该元素。

于 2013-06-19T17:56:28.370 回答
0

就我而言,我display: inline-block;.chosen-containerselected.css 文件中删除并解决了这个问题。

于 2014-06-06T13:26:15.527 回答