2016-07-13 6 views
0

イベント・キーアップを持つJqueryがあります。 ドロップダウンリスト(CityId)オプションを選択します。このオプションは、入力ボックス(finpost)にユーザが書き込むときに好きなテキストです。Jquery、イベントのドロップダウン・オプションを選択

問題は一度しか働いていないことです。何が間違っているのか分かりません。 ヘルプ

$(document).ready(function() { 

    $('#finpost').keyup(function() 
    { 
     $("#CityId > option").each(function() 
     { 
      var t = this.text.toUpperCase(); 
      if (t.indexOf($('#finpost').val().toUpperCase()) != -1) 
      { 
       $(this).attr("selected", 'true'); 
       return false; 
      }     
     }); 

    }); 
}); 
+0

チェックコードが正常に動作するようですplunker http://plnkr.co/edit/iDo97jrL5whZBtCQqRqk?p=previewは、あなたが私の最後のコメントを確認することができ、あなたの問題が – Deep

+0

アーメドを再作成することができ –

答えて

0

をしようとした場合、あなたが行ってもいいことだと思います。 $(this).attr( 'selected'、true); ..

$(this).prop( 'selected'、true)に変更しました。 とその作業

$(document).ready(function() { 

    $('#finpost').keyup(function() { 

     $("#CityId > option").each(function() { 
      var t = this.text.toUpperCase(); 

      if (t.indexOf($('#finpost').val().toUpperCase()) != -1) { 

       $(this).prop('selected', true); 
       return false; 
      } 

     }); 

    }); 
}); 
0

一度だけこの作品あなたのリストには、時間ごとに1つだけ選択したオプションを持つことができますが、スクリプトロジックにあなたがtrueにあなたが再初期化し、他のオプションを指定せずにマッチングを見つけるたびに、選択した属性を設定しているので

私はあなたが今、その作業をこの

$(document).ready(function() { 

    $('#finpost').keyup(function() 
    { 
     var matchingFound = false; 
     $("#CityId > option").each(function() 
     { 
      var t = this.text.toUpperCase(); 
      if (t.indexOf($('#finpost').val().toUpperCase()) != -1 && !matchingFound) 
      { 
       $(this).attr("selected", 'true'); 
       matchingFound = true; 
      } 
      else { 
       $(this).attr("selected", "false"); 
      }     
     }); 

    }); 
}); 
+0

Ahmedは1つのオプションを選択していますが、他のキーアップイベントが発生すると、他のオプション(最初に選択したもの)を再初期化せずに他のオプションを選択します。 –

関連する問題