Волшебное предложение для числового ввода
Я использую magicSuggest с серверной фильтрацией для некоторых полей ввода. В форме я хочу использовать ее с Google API Places, чтобы получить почтовый индекс для мест. Дело в том, что я хочу, чтобы пользователь вставлял только числовые значения в мои данные для поиска.
Из документации я предполагаю, что параметры конфигурации, которые должны быть связаны с тем, что я хочу сделать:
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));
}