Как передать выпадающее значение в коде автозаполнения

#jquery #autocomplete

#jquery #автозаполнение

Вопрос:

Я использую автозаполнение jquery в текстовое поле на основе выпадающего списка. я создал веб-метод, а затем в представлении (.aspx) я хочу передать выпадающее выбранное значение в запросе. Вот мой код:

 function AutoFill() {

  $(".autocomp").autocomplete({
    source: function(request, response) {
      $.ajax({
        url: 'Tourplan_tourname.aspx/GetCitYByName',
        data: '{ "selectedtext": "'   {
          postcode: $('#ddlTravelType').val()
        }   ',"city": "'   request.term   '"}',
        dataType: "json",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        success: function(data) {
          if (data.d.length > 0) {
            response($.map(data.d, function(item) {
              return {
                val: item.split('-')[0],
                label: item.split('-')[1]
              };
            }))

          } else {
            response([{
              label: 'No results found.',
              val: -1
            }]);
          }

        }


      });
    },
    select: function(e, i) {
      $("[id$=hdnCitiId]").val(i.item.val);
      if (i.item.val == -1) {
        $(this).val("");
        return false;
      }
    },
    minLength: 1
  }).addClass("fixedHeight");;

}
  

Вот мой веб-метод:

 [WebMethod] 
public static string[] GetCitYByName(string selectedtext, string city) 
{
  try 
  {
    return BALHotelMaster.GetCitYByName(selectedtext, city);
  } 
  catch (Exception ex) 
  {
    throw ex;
  }
}
  

Комментарии:

1. Вот мой веб-метод:

2. [WebMethod] общедоступная статическая строка[] GetCitYByName(строка selectedtext,строка city) { попробуйте { вернуть BALHotelMaster. GetCitYByName(выбранный текст, город); } catch (исключение ex) {выбросить ex; } }

3. Мой вопрос в том, как мне передать 2 параметра в коде автозаполнения??

Ответ №1:

Из документации:-

источник: поддерживается несколько типов:

Массив: массив может использоваться для локальных данных. Поддерживаются два формата: Массив строк: [ «Choice1», «Choice2» ] Массив объектов со свойствами label и value: [ { label: «Choice1», value: «value1» }, … ] Свойство label отображается в меню предложений. Значение будет вставлено во входной элемент, когда пользователь выберет элемент. Если указано только одно свойство, оно будет использоваться для обоих, например, если вы предоставляете только свойства значения, значение также будет использоваться в качестве метки.

Поэтому измените свое val свойство на value :-

 response($.map(data.d, function(item) {
  return {
    value: item.split('-')[0],
    label: item.split('-')[1]
  };
}))
  

Комментарии:

1. я хочу передать выпадающее значение в выделенном тексте: так как мне это сделать?