Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何强制我的Html.DropDownlist根据其内容长度具有灵活的大小_Jquery_Html_Css_Asp.net Mvc 5 - Fatal编程技术网

Jquery 如何强制我的Html.DropDownlist根据其内容长度具有灵活的大小

Jquery 如何强制我的Html.DropDownlist根据其内容长度具有灵活的大小,jquery,html,css,asp.net-mvc-5,Jquery,Html,Css,Asp.net Mvc 5,我有以下代码,在我的asp.net MVC web应用程序中显示下拉列表:- <div><span class="f">@Html.DisplayNameFor(model => model.stateID)</span> @Html.DropDownListFor(model => model.stateID, ((IEnumerable<TMS.Models.ResourceState>)ViewBag.States

我有以下代码,在我的asp.net MVC web应用程序中显示下拉列表:-

<div><span class="f">@Html.DisplayNameFor(model => model.stateID)</span>
        @Html.DropDownListFor(model => model.stateID, ((IEnumerable<TMS.Models.ResourceState>)ViewBag.States).Select(option => new SelectListItem {
        Text = (option == null ? "None" : option.DISPLAYSTATE), 
        Value = option.RESOURCESTATEID.ToString(),
        Selected = (Model != null) && (Model != null ) &&  (option.RESOURCESTATEID == Model.stateID)
    }), "All") <i class=" icon icon-blue icon-star-on "></i>
          @Html.ValidationMessageFor(model => model.stateID) 
@Html.DisplayNameFor(model=>model.stateID)
@DropDownListFor(model=>model.stateID,((IEnumerable)ViewBag.States)。选择(option=>newselectListItem{
Text=(option==null?“无”:option.DISPLAYSTATE),
Value=option.RESOURCESTATEID.ToString(),
所选=(Model!=null)&&(Model!=null)&&(option.RESOURCESTATEID==Model.stateID)
})“全部”)
@Html.ValidationMessageFor(model=>model.stateID)
当前下拉列表包含短4-5个字符的文本,但下拉列表似乎始终具有固定大小,并且大多数下拉列表大小未按如下方式使用:-

因此,我的问题是,我是否可以使下拉列表的大小灵活,以适应其中包含的文本,以便在这种情况下,我可以更好地利用屏幕

谢谢
是的。您可以使用
.change
事件处理程序使其灵活

首先,必须将所选文本存储到其他元素。我在这里使用了一个隐藏的输入

<input type="hidden" id="tmpwidth"/>
注意,我在临时隐藏输入的宽度后面加了30,因为这里30是
select
元素向下箭头的宽度

希望这能有所帮助

最后是小提琴


但是如果我选择短文本,然后选择长文本,下拉列表将不会重新调整大小。@johnG检查更新的小提琴。再次调整大小时,隐藏的输入似乎不能提供正确的宽度。我试过使用
div
,效果很好。
  $(function(){
    $("select").on("change", function(){
        $("#tmpwidth").html($('select option:selected').text());
        $(this).width($("#tmpwidth").width()+30);
    });
  });