2016-12-02 7 views
0

html要素selectから選択された値に基づいてスイッチケースを作成しようとしていますが、コードが実行されていないため問題があるようです。コードは「インスタント検索」のようなものでなければなりません。選択値のスイッチケース

$(function(){ 
var $searchInput = $("#search"); 

$("#searchOptions").change(function(){ 
var selection = $("#searchOptions").val(); 
switch (selection) { 

case "Fragment": 
$searchInput.keyup(function(e){ 
var q = $searchInput.val(); 
$.ajax({ 
    type: 'GET', 
    url: 'http://localhost:51834/CoffeeService.svc/getaorderfrag/' + q, 
    success: function(orders){ 

    console.log('success', orders); 
    $.each(orders, function(i, order){ 
     $("#orderTable tbody").append('<tr><td>' + order.ID + 
'</td><td>' + order.Name + '</td><td>' + order.Order + '</td><td>' + order.Price + "-kr;" +'</td></tr>'); 
     }); 
    }, 
    error: function(data){ 
     $searchInput.keyup(function(e){ 
      if(data == "404 (Not Found)"){ 
      $("#orderTable td").remove(); 
      alert("Nothing was found! Sorry :("); 
      } 
     }); 
     } 
    }); 
}); 
    break; 

    case "ID": 
    $searchInput.keyup(function(e){ 
     var id = $searchInput.val(); 
     $.ajax({ 
     type: 'GET', 
     url: 'http://localhost:51834/CoffeeService.svc/getaorder/' + id, 
     success: function(order){ 
      console.log('success', order); 
      if(!order) 
      { $("#orderTable td").remove(); } 
      else{ 
      $("#orderTable tbody").append('<tr><td>' + order.ID + 
     '</td><td>' + order.Name + '</td><td>' + order.Order + '</td><td>' + order.Price + "-kr;" +'</td></tr>'); 
      } 
      }, 
      error: function(data){ 
      if(data == "404 (Not Found)"); 
       $("#orderTable td").remove(); 
      } 
     }); 
     }); 
    break; 
    }); 
    }); 
+0

これを選択した値 'var selection = $("#searchOptions option:selected ")に使用します。val();'内部変更 – RonyLoud

+0

@vispan:これはまったく必要ありません。 'select'自体をラップしたjQueryオブジェクトの' val'を呼び出してください。 –

+0

時間を割いて、ヘルプを求めるときにコードを読みやすくしてください。一貫したインデントなどを使用してください。スタックスニペット( '[<]]'ツールバーボタン)を使用して問題の**実行可能な例を作成することを検討してください。 –

答えて

1

すべてのFirsrt、私はあなたが VAR選択= $( "#のsearchOptions")を動かすかもしれないと思うのval();

と.chage関数スコープ。今のやり方では、変化するたびに新しい価値を捉えているわけではありません。

+0

あなたの答えを再度読んで、どのように書式を整え、それをよりよく校正することができるか考えてみてください。 :-)助けをフォーマットするツールバー全体があり、ヘルプ情報が不足していません。 –

+0

私はちょうどそれに気付きましたが、私はそれを移動しましたが、まだコードが内部で実行されていないので問題にはならないと思われます – kennyYice23

+0

また、$ searchInput.keyup(function(e){'どちらの場合でも共通です。選択が変更され、決して削除されないたびに、keyupイベントハンドラを追加する方法です。 –