如何保持选择框的宽度从改变,因为我删除项目
How can I keep the width of a select box from changing as I remove items?
我在一个页面上有两个SELECT框。在第一个框中选择一个值会导致过滤第二个框中可用的选项,我在两个框的顶部都保留了一个空选项。当第一个框的选定选项为空框时,我将在第二个框中显示所有选项。
问题是这两个盒子都在一个flexbox容器中,右边有额外的字段。每当我在第一个框中更改所选选项时,第二个框的宽度就会改变,然后右边的所有字段都会移动。我需要做的是,当我改变第一个框的选择时,当项目被过滤掉时,保持第二个框不收缩。我希望能够设置第二个选择框的min-width CSS属性,但由于起始宽度是基于内容而不是在CSS中设置的,因此我不能使用$('#second-box').width()来设置min-width属性,因为它返回0。
如何在javascript中确定第二个框的基于内容的宽度以防止大小调整?
<div class="VerticalField">
<label for="FirstBox" id="lblFirstBox" class="FormLabel VerticalLabel">First Box</label>
<select id="FirstBox" class="FormTextBox VerticalTextBox" onchange="filterSecondBox()">
<option value=""></option>
<option value="51">Option 51</option>
<option value="56">Option 56</option>
<option value="63">Option 63</option>
<option value="65">Option 65</option>
</select>
</div>
<div class="VerticalField">
<label for="SecondBox" id="lblSecondBox" class="FormLabel VerticalLabel">Second Box</label>
<select id="SecondBox" class="FormTextBox VerticalTextBox">
<option value=""></option>
<option value="5101">Sub Option 5101</option>
<option value="5601">Sub Option 5601</option>
<option value="5602">Sub Option 5602</option>
<option value="6301">Sub Option 6301</option>
<option value="6302">Sub Option 6302</option>
<option value="6303">Sub Option 6303</option>
<option value="6501">Sub Option 6501</option>
<option value="6502">Sub Option 6502</option>
<option value="6503">Sub Option 6503</option>
</select>
</div>
这是我的Javascript:
$('#SecondBox').css('minWidth', $('#SecondBox').width()));
function filterSecondBox()
{
if ($('#FirstBox').data('options') === undefined)
{
$('#FirstBox').data('options', $('#SecondBox option').clone());
}
var id = $('#FirstBox').val();
var options;
if (id == "")
{
options = $('#FirstBox').data('options');
$('#SecondBox').html(options);
}
else
{
options = $('#FirstBox').data('options').filter('[value^=' + id + ']');
$('#SecondBox').html(options);
$('#SecondBox').prepend($('#FirstBox').data('options').first());
}
$('#SecondBox').val('');
}
filterSecondBox();
显然"$('#SecondBox').css('minWidth', $('#SecondBox').width());"不工作,因为宽度没有设置,所以我不确定如何确定基于内容的宽度是设置minWidth属性。
设置第二个选择的CSS宽度属性为固定宽度
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- onclick函数需要双击,因为类分配延迟
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 为什么使用immutableJS我的状态没有改变
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- JavaScript改变了双方的显示风格
- 改变所有<td>为特定的桌子点击颜色
- 变量dos'即使我可以返回更新后的值,也不会改变
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- jQuery更改变量值
- ACE编辑器正在删除模块,因为define是't一根绳子
- 爆米花改变来源
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- innerHTML赢得't改变元素
- Javascript onclick更改变量值
- 任何人都知道IE7设置或更新/补丁,它可以防止IE因为jquery错误而无法加载页面
- 如何保持选择框的宽度从改变,因为我删除项目
- 避免直接改变prop,因为该值将被覆盖
- 对于循环和动画,不能使用变量,因为由于闭包而改变
- JQuery时钟/计时器,因为页面被加载(即使用户改变他的计算机上的时间)