Javascript禁用基于另一个多选框中的选择的多选框


javascript disable multiselect box based on selections in another multiselect box

我有两个多选择框一个用于国家列表,一个用于州列表

<select multiple="multiple" name="country[]" id="country" >
      <option value="0">Select a Country</option>

  <?php 
    foreach($country_list as $key=>$value){
    echo "<option value='"$key'"";
      if($html['Country Name']==$key|| $row['Country Name']==$key){
       echo ' selected="selected"';
      }
    echo ">$value</option>'n";                                     
    }?>
</select>

<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>

我有这个javascript启用状态框时所选择的国家是美国。

window.onload = function() {
    var selectCountry = document.getElementById('country');
    selectCountry.onchange = function() {
        document.getElementById('state').disabled = (selectCountry.value != 'USA')? true : false;
    };
};

但是,我希望在第一个国家中与美国一起选择其他国家时禁用状态框。有什么建议吗?由于

Demo: http://jsfiddle.net/eBTgb/

$("#country").on("click change", function(){
  var option_usa = $("option[value=6]", this);
  if (option_usa.is(":selected") && option_usa.siblings(":selected").length == 0) {
    $("#state").removeAttr("disabled");
  }
  else {
    $("#state").attr("disabled", "disabled");
  }
});

这可以使用JQuery完成。

 $("#state").hide();
 $("#country").change( function () {  
    var countryName = $("#country").find("option:selected").html();
    if(countryName == 'USA'){
      $("#state").show(); 
    } else {
      $("#state").hide();
    }
  });

这里是JSFIDDLE的链接