2017-04-03 81 views
0

我正在使用Flexdatalist来提供自动完成功能。 我的脚本是类似以下内容:如何使用jQuery为Flexdatalist设置默认值

$('#locationKeyword').flexdatalist({ 
     url: 'serverAction', 
     cache: false, 
     searchIn: ["ProvinceName", "CityName", "TownName"], 
     visibleProperties: ["ProvinceName", "CityName", "TownName"], 
     groupBy: 'ProvinceName', 
     value:'1,1,1', 
     selectionRequired: false, 
     focusFirstResult: true, 
     minLength: 1, 
     maxShownResults: 20, 
     valueProperty: '{Value}', 
     textProperty: '{ProvinceName}, {CityName}, {TownName}', 
     searchContain: true 
    }); 

服务器端代码(Asp.NET MVC)返回一个对象类似如下的数组:

return Json(new 
     { 
      ProvinceName = item.Province.Name, 
      CityName = item.City.Name, 
      TownName = item.Town.Name, 
      Value = item.ProvinceId + "," + item.CityId + "," + item.TownId 
     }); 

所有item.ProvinceId,item.CityId ,item.TownId是int;

问题: 如何为其设置默认值。例如,我想选择省,城市,城镇的一个组合。

回答

0

谢谢大家!

我发现如下解决方案:

HTML:

<input name="BusinessLocation" type="text" class="locationKeyword" /> 

脚本:

$('[name=BusinessLocation]').flexdatalist({ 
     url: options.businessLocationUrl, 
     cache: false, 
     searchIn: ["ProvinceName", "CityName", "TownName"], 
     visibleProperties: ["ProvinceName", "CityName", "TownName"], 
     groupBy: 'ProvinceName', 
     selectionRequired: true, 
     focusFirstResult: true, 
     minLength: 1, 
     maxShownResults: 20, 
     textProperty: '{ProvinceName}, {CityName}, {TownName}', 
     searchContain: true, 
     valueProperty: 'Value' 
    });   

    $('.locationKeyword').each(function (index) { 
     if ($(this).hasClass('flexdatalist-alias')) { 
      $(this).val('تهران, تهران, یوسف آباد'); 
     } else { 
      $(this).val('1,1,1'); 
     } 
    }); 

    $('[name=BusinessLocation]').val('1,1,1');