我正在使用magicSuggest和一些输入字段进行服务器端过滤。在表单中,我想将其与Google API Places一起使用,以获取地方的邮政编码。问题是我希望用户只将数值插入我的输入进行搜索。
从documentation我猜测应该与我想要做的相关的配置选项是:
vregex规定了条目集的类型。
vtype需要一个匹配给定类型的条目。
我尝试过以下设置:
vtype: "int", vtype: "number"
vregex: /^\d+$/, vregex: "/^\d+$/"
并且它们都没有触发任何类型的错误,而不是允许或指示该字段不接受字符串值。此外,无论我写什么输入触发服务器端过滤,并给我一个字符串输入预期的结果。
我的完整插图是:
HTML
<input asp-for="ZipCode" id="zipCode" class="form-control" placeholder="" />
Javascript
$('#zipCode').magicSuggest({
allowFreeEntries: false,
maxSelection: 1,
minChars: 3,
useTabKey: true,
mode: 'remote',
valueField: 'id',
displayField: 'description',
autoSelect: true,
vregex: reg,
renderer: function (region) {
return '<div>' +
'<div style="font-family: Arial; font-weight: bold">' + region.structured_formatting.main_text + '</div>' +
'<div>' + region.description + '</div>' +
'</div>';
},
data: params.searchRegionsUrl
});
控制器
public async Task<JsonResult> GetRegions(string query)
{
List<GoogleApiPlace> places = new List<GoogleApiPlace>();
try
{
places = await GoogleApisPlacesManagement.GetRegions(query);
}
catch (Exception ex)
{
// Log exception
}
return Json(places.OrderBy(o => o.description));
}