我有一个正在过滤的下拉列表(例如..(toggleOptionVisibility在选项周围加上一个跨度,如果为真,跨度是可见的)):
case 'Actimel drank naturel':
$(eenheid + ' option[value="101"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="102"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="103"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="116"]').toggleOptionVisibility( true );
break;
case 'Roosvicee multivit (siroop)':
$(eenheid + ' option[value="101"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="102"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="103"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="104"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="111"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="116"]').toggleOptionVisibility( true );
break;
过滤是有效的,只是给出了一个我如何做的例子。
现在的问题是,无论我在提交表单时选择什么,selected="selected“都是由用户选择的(它在IE中有效),但下拉列表本身显示的是火狐中倒数第二的值和Chrome中的最后一个值。
即使在火狐和chrome中,“选定”的selected=仍然是用户输入的内容。
这是我的问题,你们谁知道为什么会发生这种情况,为什么它在IE中工作,而不是在chrome / firefox中?
因为每个人都喜欢代码,所以我会多发一点。
$(eenheid + ' option').toggleOptionVisibility( false );
在过滤前隐藏所有选项,以确保只显示过滤后的选项。
发布于 2013-06-05 13:38:45
有关<option>
的<span>
,请讨论:
interface HTMLSelectElement : HTMLElement {
...
readonly attribute HTMLCollection selectedOptions;
...
};
为了获得最大的兼容性,selectedOptions
必须是<option>
或<optgroup>
的列表。不是禁止使用<span>
,而是在中使用自己的risk。
发布于 2013-06-05 11:46:57
$('select option[value="..."]').toggleOptionVisibility(false);
$('select').val($('#select-test > option:first'));
要获取选定的值,请执行以下操作:
$('select option:selected').val()
https://stackoverflow.com/questions/16938590
复制