使用javascript使用单个选择框控制多选框

时间:2012-12-05 16:37:11

标签: php javascript

`<select multiple="multiple" name="state[]" id="state">
<option value="">Select a State</option>
<?php 
foreach($state_list as $key=>$value){
echo "<option value=\"$key\"";
if($html['state']==$key|| $row['state']==$key){
echo ' selected="selected"';
}
echo ">$value</option>\n";                                     
}?>
</select> </p>`


<p>Select A Country
<select name="country" id="country">
<option value="0">Select a Country</option>
<option value="USA">USA</option>                             
<option value="UK">UK</option>    
</select> </p>

我有两个选择框1)状态[] 2)国家/地区。需要的是“如果所选国家不是美国,请禁用包含所有美国州的多选框”。任何帮助表示赞赏

2 个答案:

答案 0 :(得分:2)

将此Javascript添加到您的代码中:

<script type="text/javascript">
<!--
window.onload = function() {
    var selectCountry = document.getElementById('country');
    selectCountry.onchange = function() {
        document.getElementById('state').disabled = (selectCountry.value != 'USA')? true : false;
    };
};
//-->
</script>

答案 1 :(得分:0)

如果你有jQuery,你可以做以下事情:

$('#country').change(function () {
    if($('#country').val() != "USA") {
        $('#state').attr('disabled', 'disabled');
    }
    else {
        $('#state').removeAttr('disabled');
    }
});

或者如果您使用的是纯JavaScript:

var elem = document.getElementById("country");
elem.onchange = function () {
     if(elem.options[e.selectedIndex].value != "USA") {
         document.getElementById('state').disabled = "disabled";
     }
     else {
         document.getElementById('state').removeAttribute("disabled");
     }
}

当国家/地区组合框包含的值不是&#34; USA&#34;时,这将禁用状态组合框。当所选国家/地区为&#34; USA&#34;时,它将删除已禁用的属性并使其再次可用。

希望这有帮助。