bugfix> javascript > 投稿

訪問者のIPを使用してドロップダウン(7か国のみを含む)で国を選択するこのコードがあります。問題として、国がオプションとして見つからない場合、ドロップダウンはデフォルトの選択値を無視し、空白を表示するだけです。スクリプトの実行後にデフォルトの選択値(この場合はBelize)が必要です。

スクリプトは次のとおりです。

$.get("http://ipinfo.io", function (response) {
    $('.country').val(response.country).attr('selected',true);
  }, "jsonp");

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select class="country">
  <option value="BZ" selected>Belize</option>
  <option value="GT">Guatemala</option>
  <option value="HN">Honduras</option>
  <option value="SV">El Salvador</option>
  <option value="NI">Nicaragua</option>
  <option value="CR">Costa Rica</option>
  <option value="PA">Panama</option>
</select>

ありがとう。

回答 1 件
  • 選択オプションに国が存在するかどうかを確認する条件を追加できます

    $.get("http://ipinfo.io", function (response) {
        if($(".country option[value='"+response.country+"']").length > 0){
            $('.country').val(response.country).attr('selected',true);
        }
      }, "jsonp");
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <select class="country">
      <option value="BZ" selected>Belize</option>
      <option value="GT">Guatemala</option>
      <option value="HN">Honduras</option>
      <option value="SV">El Salvador</option>
      <option value="NI">Nicaragua</option>
      <option value="CR">Costa Rica</option>
      <option value="PA">Panama</option>
    </select>
    
    

あなたの答え