如何在自动填充代码中传递下拉列表值

时间:2016-10-18 13:49:39

标签: jquery autocomplete

我正在使用基于dropdown.i创建WebMethod的文本框中的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:

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

1 个答案:

答案 0 :(得分:0)

从文档中: -

  

source: Multiple types supported

     

数组:数组可用于本地数据。有两种支持的格式:字符串数组:[   “Choice1”,“Choice2”]具有标签和值的对象数组   属性:[{标签:“Choice1”,:“value1”},...]标签   属性显示在建议菜单中。价值将是   当用户选择项目时插入到input元素中。如果只是   指定了一个属性,它将用于两者,例如,如果您   只提供值属性,该值也将用作   标签

因此,将val属性更改为value: -

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