0
`<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)state[] 2) country 。想要的是“如果所选国家不是美国,请禁用包含所有美国州的多选框”。任何帮助表示赞赏

4

2 回答 2

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>
于 2012-12-05T16:58:45.803 回答
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");
     }
}

当国家组合框包含的值不是“美国”时,这将禁用州组合框。当所选国家是“USA”时,它将删除已禁用的属性并使其再次使用。

希望这可以帮助。

于 2012-12-05T16:48:32.690 回答