Как выполнить другой вызов ajax при выборе значения текстового поля автозаполнения в ASP.NET MVC 4?

#javascript #jquery #asp.net

#ajax #asp.net-mvc-4 #jquery-ui-автозаполнение

Вопрос:

У меня есть текстовое поле автозаполнения, которое использует JSON следующим образом:

           $(function () {
              var src = '@Url.Action("GetParts", "Parts")'
              $("#autoCompleteBox").autocomplete({
                  source: function (request, response) {
                      $.ajax({
                          url: src,
                          async: true,
                          dataType: "json",
                          data: {
                              partNumber: $("#autoCompleteBox").val()
                          },
                          success: function (data) {
                              response(data[0]);
                          }
                      });
                  }
              });
          });
  

Что я хочу сделать, так это когда пользователь выбирает элемент из предложенного списка, выполнить еще один вызов ajax, чтобы получить конкретную информацию об этом элементе и заполнить другие текстовые поля на странице.

Каков наилучший подход для этого?

Ответ №1:

Вы можете сделать это в select случае автозаполнения.

 $(function () {
    var src = '@Url.Action("GetParts", "Parts")'
    $("#autoCompleteBox").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: src,
                async: true,
                dataType: "json",
                data: {
                    partNumber: $("#autoCompleteBox").val()
                },
                success: function (data) {
                    response(data[0]);
                }
            });
        },
        select: function (event, ui) {
           var item= ui.item.label;
           //Now make the ajax call here
           $.post("SomeValidUrl", new { id : item } ,function(res){
               // do something with res
           });
        }
    });
});