脚本需要 jQuery
一切正常,但我需要能够在选项框选择所选下拉菜单时将其颜色更改为(亮绿色)。如果选择了其他选项,则再次变灰。
我已经尝试了我阅读过的所有建议技巧,即 $( "#mOptions").prop (.css('background-color','#ffffff'));任何颜色。 请帮忙,非常感谢。没用
脚本
$(document).ready(function(){
$('input[name="gender"]').click(function() {
if($('input[name="gender"]').is(':checked')) {
var radioValue = $("input[name='gender']:checked").val();
if(radioValue == "m"){
$( "#mOptions" ).prop( "disabled", false );
$( "#fOptions" ).prop( "disabled", true );
} else {
$( "#mOptions" ).prop( "disabled", true );
$( "#fOptions" ).prop( "disabled", false );
}
}
});
});
表格:
<input type="radio" name="gender" value="m" />Male
<input type="radio" name="gender" value="f" />Female
<br />
<select id="mOptions" disabled="true">
<option>Select</option>
<option value="1">Shirt</option>
<option value="2">Pant</option>
<option value="3">dhoti</option>
</select>
<select id="fOptions" disabled="true">
<option>Select</option>
<option value="4">Saree</option>
<option value="5">Bangle</option>
<option value="6">handbag</option>
</select>
最佳答案
您可以像这样将 css
方法链接到 prop
方法:
$('input[name="gender"]').click(function() {
if($('input[name="gender"]').is(':checked')) {
var radioValue = $("input[name='gender']:checked").val();
if(radioValue == "m"){
$( "#mOptions" ).prop( "disabled", false ).css('background-color', 'lightgreen');
$( "#fOptions" ).prop( "disabled", true ).css('background-color', '');
} else {
$( "#mOptions" ).prop( "disabled", true ).css('background-color', '');
$( "#fOptions" ).prop( "disabled", false ).css('background-color', 'lightgreen');;
}
}
});
您还可以考虑将other 下拉菜单的值重置为“已选择”,这样您就不会以具有值的禁用下拉菜单结束。您可以这样做:
$( "#fOptions" ).prop( "disabled", true ).css('background-color', '').val('Select');
为了更加用户友好,请考虑使用标签包装您的输入:
<label><input type="radio" name="gender" value="m" />Male</label>
这让您的用户除了可以选择微型单选按钮外,还可以点击“男性”一词。
你可以稍微简化一下逻辑。
单击单选按钮后,至少有一个按钮被选中,并且无法同时取消选中它们。因此,不需要这个测试:
if($('input[name="gender"]').is(':checked'))
另外,要启用的select
框可以这样直接查询:
select= $('#'+$(this).val()+'Options');
您只需启用那个选择
框并禁用另一个。
更新代码:
$('input[name="gender"]').click(function() {
var value= $(this).val(),
select= $('#'+value+'Options');
select
.prop('disabled', false)
.css('background-color', 'lightgreen');
$('#mOptions, #fOptions')
.not(select)
.prop('disabled', true)
.css('background-color', '')
.val('Select');
});
关于javascript - jQuery如何设置/取消下拉菜单的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354379/