0

国リスト用と州リスト用の 2 つの複数選択ボックスがあります。

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

しかし、最初の国で米国と一緒に他の国が選択されたときに、状態ボックスを無効にしたいと思います。何か提案はありますか?ありがとう

4

2 に答える 2

1

これは、JQuery を使用して実行できます。

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

JSFIDDLEへのリンクはこちら

于 2013-01-14T20:00:04.977 に答える
1

デモ: 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");
  }
});

正しく理解していただければ幸いです。

于 2013-01-14T19:58:57.230 に答える