2015-07-31 4 views
2

NIW У меня есть код, который изменяет внешний ключ в соответствии с методом ввода и запрос данных в соответствии с внешним ключом, все это выглядит следующим образом:Вызов функции по изменению выбора опции

HTML страница:

<div class="large-6 columns"> 
    {% csrf_token %} 
    <input type="text" id="search" name="search" > 
    <select id="search-results"> 
    </select> 
</div> 

Затем скрипт:

$(function(){ 

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

     $.ajax({ 
      type: "POST", 
      url: "/automobile/search/", 
      data: { 
       'search_text' : $('#search').val(), 
       'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val() 
      }, 
      success: searchSuccess, 
      dataType: 'html' 
     }); 

    }); 

}); 

function searchSuccess(data, textStatus, jqXHR) 
{ 
    $('#search-results').html(data); 
} 

Как вы можете понять, на каждом KeyUp Javascript запустить эту функцию и загружает мой поиска HTML документ, который выглядит следующим образом, в. Вот это HTML-страница:

<div> 

search_test: {{ val }} 

{% for model in models %} 
    <option value="{{ model.id }}">{{ modelaname }} ({{ model.automobile_set.count }})</option> 
{% endfor %} 
</div> 

... А теперь приходит вопрос .... Как вызвать функцию на каждом выберите изменение опции в соответствии с выбором значений опций, вместо ввода KeyUp. Как это:

<select id=search> 
<option value="1">Sel1</option> 
<option value="2">Sel2</option> 
</select> 
+0

Слушайте событие изменения ... – epascarello

ответ

2

Использование change() обработчик событий вместо keyup() обработчика

$(function(){  
    $('#search').change(function() {  
     $.ajax({ 
      type: "POST", 
      url: "/automobile/search/", 
      data: { 
       'search_text' : $(this).val(), 
       'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val() 
      }, 
      success: searchSuccess, 
      dataType: 'html' 
     });  
    });  
}); 

function searchSuccess(data, textStatus, jqXHR) 
{ 
    $('#search-results').html(data); 
} 
+0

Спасибо человеку !!! Оно работает!!! Я пробовал значение изменения, но моя ошибка заключалась в том, что я также изменил значение $ ("input [name = csrfmiddlewaretoken]"). Val(), в $ ("select [name = csrfmiddlewaretoken]"). Val() ... –

+0

@ilyasJumadurdyew: рад помочь :) –

0

вы можете использовать событие изменения в раскрывающемся списке. при изменении выпадающего значения, событием изменения является звонок

$(function(){  
    $('#search-results').change(function() {  
     $.ajax({ 
      type: "POST", 
      url: "/automobile/search/", 
      data: { 
       'search_text' : $(this).val(), 
       'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val() 
      }, 
      success: searchSuccess, 
      dataType: 'html' 
     });  
    });  
}); 

function searchSuccess(data, textStatus, jqXHR) 
{ 
    $('#search-results').html(data); 
} 
Смежные вопросы