所以我想知道是否有人知道如何解决以下问题:
我有一个包含多个选项的下拉菜单。每个选项都会更改页面,而标题保持不变。
一切正常,但有另一个下拉列表,只显示所有选项或隐藏一些,过滤。
问题是当我隐藏一些时,它会在第一个下拉菜单中创建一些奇怪的空间。我知道我可以为第二个菜单上的每个选项创建一个不同的下拉列表,但似乎该解决方案不是最佳的,所以我想知道是否还有另一个。
这是一个简化的小提示,显示了我的问题:
$('#select6, #select5, #select4, #select3, #select2, #select1').remove();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col">
<select class="form-control" id="matrizsele" onchange="location = this.options[this.selectedIndex].value;">
<option disabled></option>
<option id="select1" value="{{ route('layouts.documentos.matriz') }}">COMERC</option>
<option id="select2" value="{{ route('layouts.documentos.matrizes.matriz2') }}">COMERC</option>
<option id="select3" value="{{ route('layouts.documentos.matrizes.matriz3') }}">COMERC</option>
<option id="select4" value="{{ route('layouts.documentos.matrizes.matriz4') }}">COMERC</option>
<option id="select5" value="{{ route('layouts.documentos.matrizes.matriz5') }}">COMERC</option>
<option id="select6" value="{{ route('layouts.documentos.matrizes.matriz6') }}">COMERC</option>
<option disabled></option>
<option id="select7" value="{{ route('layouts.documentos.matrizes.matriz7') }}">CONTR</option>
<option id="select8" value="{{ route('layouts.documentos.matrizes.matriz8') }}">CONTR</option>
<option disabled></option>
</select>
</div>
&#13;
答案 0 :(得分:3)
那些额外的空格不是空格,那些是空的禁用选项。从HTML片段中移除以下内容并且它应该有效。
<option disabled></option>
答案 1 :(得分:1)
您需要从HTML中删除已禁用的选项。
<div class="col">
<select class="form-control" id="matrizsele" onchange="location = this.options[this.selectedIndex].value;">
<option id="select1" value="{{ route('layouts.documentos.matriz') }}">COMERC</option>
<option id="select2" value="{{ route('layouts.documentos.matrizes.matriz2') }}">COMERC</option>
<option id="select3" value="{{ route('layouts.documentos.matrizes.matriz3') }}">COMERC</option>
<option id="select4" value="{{ route('layouts.documentos.matrizes.matriz4') }}">COMERC</option>
<option id="select5" value="{{ route('layouts.documentos.matrizes.matriz5') }}">COMERC</option>
<option id="select6" value="{{ route('layouts.documentos.matrizes.matriz6') }}">COMERC</option>
<option id="select7" value="{{ route('layouts.documentos.matrizes.matriz7') }}">CONTR</option>
<option id="select8" value="{{ route('layouts.documentos.matrizes.matriz8') }}">CONTR</option>
</select>
</div>
$('#select6, #select5, #select4, #select3, #select2, #select1').hide();
禁用选项会在隐藏其他选项时导致占用空间。这是更新后的fiddle.
答案 2 :(得分:0)
您必须删除此(选项)而不是禁用。
$("#matrizsele option[value='X']").each(function() {
$(this).remove();
});
注意:此处X是您的选项值
答案 3 :(得分:0)
<option disabled></option>
这是一个固定的小提琴:https://jsfiddle.net/nf8m46Lm/19/
你谈到的奇怪“间距”来自<option disabled></option>
。这是一个空白禁用选项,当然它显示一个空白条目。要更好地理解它,请尝试将代码更改为<option disabled>foobarentry</option>
。