2016-12-02 2 views
0

Я пытаюсь сделать случай переключения на основе значения, выбранного из элемента html, но у меня возникают проблемы, так как код не выполняется. Код должен быть чем-то вроде «мгновенного поиска».Корпус переключателя с выбором значения

$(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();' inside change – RonyLoud

+0

@vispan: Это совершенно не нужно. Просто вызовите 'val' на объект jQuery, обернутый вокруг' select'. –

+0

Пожалуйста, найдите время для форматирования кода с запросом о помощи. Используйте согласованные отступы и т. Д. Подумайте о создании ** runnable ** примера проблемы с использованием Stack Snippets (кнопка <[>> '), чтобы мы могли увидеть проблему в прямом эфире на сайте. –

ответ

1

Firsrt всего, я думаю, вы могли бы переместить выбора вар = $ ("# ориентировочная цена") Вал().

в. Функция функция scope. Как сейчас, вы не получаете новое значение каждый раз, когда оно изменяется.

+0

Перечитайте свой ответ и подумайте над тем, как вы могли бы форматировать и исправлять его лучше. :-) Существует целая панель инструментов для форматирования и отсутствие информации о помощи. –

+0

Я только что заметил это, и я переместил его, но это не похоже на проблему, поскольку код внутри все еще не выполняется. – kennyYice23

+0

Также переместите оператор switch внутри '$ searchInput.keyup (function (e) {' рассматривается как это является общим для обоих случаев. Точно так же вы будете добавлять обработчик события keyup каждый раз, когда выбор изменяется и никогда не удаляется. –

Смежные вопросы