Я уверен, что мне не хватает чего-то очевидного ... У меня есть простое текстовое поле input
, которое не вызывает button
рядом с ним, когда я нажимаю Enter. Я даже добавил логирование консоли, когда пытаюсь заставить это произойти, и консоль регистрирует все, кроме ключа <ENTER>
.
Если я нажму кнопку, все будет нормально. Сообщение появляется, и я получаю ожидаемые результаты поиска.
Вот вид:
@model Hotcakes.Modules.Core.Models.SearchPageViewModel
@using Hotcakes.Modules.Core.AppCode
@Html.RegisterViewScript("Search.SearchInput.js")
<div class="row-fluid hc-search-input">
<div class="col-xs-12 center-block">
@using (Html.BeginHccRouteForm(HccRoute.Search, FormMethod.Get, new Dictionary<string, object> { { "data-skipxy", "true" } }))
{
<div class="form-inline">
<div class="form-group">
<input type="text" class="form-control" name="search" value="@ViewBag.Search" />
</div>
<button class="btn btn-default" title="@Localization.GetString("Search")">
<i class="glyphicon glyphicon-search margin-right-sm" aria-hidden="true"></i>@Localization.GetString("Search")
</button>
</div>
}
</div>
</div>
<div class="clearfix"></div>
Вот JavaScript:
$(document).ready(function () {
$(".hc-search-input input[type='text']").keypress(function (e) {
var key = e.which;
console.log(key); // pressing <ENTER> does not show anything in the console
if (key == 13) {
$(".hc-search-input button").click();
return false;
}
});
});
Для дополнительного контекста, вот исходное представление до того, как я его изменил, где сработала клавиша <ENTER>
(без всяких JavaScript).
@model Hotcakes.Modules.Core.Models.SearchPageViewModel
<div class="hc-search clearfix" >
@using (Html.BeginHccRouteForm(HccRoute.Search, FormMethod.Get, new Dictionary<string, object> { { "data-skipxy", "true" } }))
{
<input type="text" class="hc-search-bar" name="search" value="@ViewBag.Search" />
<input type="image" class="hc-search-button" value="" />
}
</div>