我希望某些选项以红色显示,并且不能由用户在表单上选择。可以通过JS选择这些选项。我希望这些禁用选项在下拉列表中显示为红色(实际上,如果它们在下拉列表中根本不可见则会更好),如果选中,则在用户具有该字段时没有点击它。我当前的解决方案在下拉列表中显示红色选项,但如果选中,则不会在字段中显示为红色。
以下是代码:
function do_it() {
var tickselect = document.getElementById('TB_038_116');
var tickvalue = tickselect.options[tickselect.selectedIndex].value;
if (tickvalue == 0) {
tickselect.value = 4;
}
}

<h1>
<center>Styling Disabled Selected Options</center>
</h1>
<select id='TB_038_116' class='tickbox'>
<option value='0' disabled selected>Option 0</option>
<option value='1'>Option 1</option>
<option value='2'>Option 2</option>
<option value='3'>Option3</option>
<option value='4' style='color: red;' disabled>Option 4</option>
<option value='5' style='color: red;' disabled>Option 5</option>
</select>
<button type='button' onclick='do_it()'>Click Me</button>
&#13;
单击按钮后,我需要选项4以红色显示。
我可以在未单击时在下拉列表和控件中单独设置选项吗?这将是一个麻烦的解决方案,因为选项4和5的样式需要与选项1,2和3不同,因此每次所选选项发生更改时我都必须动态更改样式。
我可以设置选中和禁用的选项吗?
答案 0 :(得分:0)
当你点击按钮然后它选择选项4,这就是为什么它显示为灰色并且在firefox中正常工作
function do_it() {
var tickselect = document.getElementById('TB_038_116');
var tickvalue = tickselect.options[tickselect.selectedIndex].value;
if (tickvalue == 0) {
tickselect.value = 4;
tickselect.className='redText';
}
}
.tickbox{ color:black; }
.redText{ color:red; }
option:disabled {
color: red;
}
<div class="container body-content">
<h1>
<center>Styling Disabled Selected Options</center>
</h1>
<select id='TB_038_116' class='tickbox' >
<option value='0' disabled="disabled" selected>Option 0</option>
<option value='1' class='tickbox'>Option 1</option>
<option value='2' class='tickbox'>Option 2</option>
<option value='3' class='tickbox'>Option 3</option>
<option value='4' style='color: red;' class='redText' disabled>Option 4</option>
<option value='5' style='color: red;' class='redText' disabled>Option 5</option>
</select>
<button type='button' onclick='do_it()'>Click Me</button>
</div>
答案 1 :(得分:0)
经过大量阅读,搜索和吸收这个论坛和其他人的帮助,我想出了一些有用的东西:
function setcolour(pos) {
pos.className = pos[pos.selectedIndex].className;
pos.blur();
}
function sel_opt(option) {
var tickselect = document.getElementById('TB_038_116');
var tickvalue = tickselect.options[tickselect.selectedIndex].value;
if (tickvalue == 0) {
tickselect.value = option;
setcolour(tickselect);
}
}
select, option {
color: black;
}
select.redtick {
color: red;
}
select.blacktick {
color: black;
}
option.redtick {
color: red;
display: none;
}
option.blacktick {
color: black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<h1><center>Styling Disabled Selected Options</center></h1>
<select id='TB_038_116' class='tickbox' onchange="setcolour(this)">
<option class='blacktick' style='display: none;' value='0' disabled selected>Option 0</option>
<option class='blacktick' value='1'>Option 1</option>
<option class='blacktick' value='2'>Option 2</option>
<option class='blacktick' value='3'>Option 3</option>
<option class='redtick' value='4' disabled>Option 4</option>
<option class='redtick' value='5' disabled>Option 5</option>
</select>
<button type='button' onclick='sel_opt(4)'>Select Option 4</button>
<button type='button' onclick='sel_opt(5)'>Select Option 5</button>
关键问题似乎是:
我们最终到达那里!感谢所有帮助我理解并找到解决方案的人。
罗文