MVC Клавиша ввода Razor View ничего не делает - PullRequest
0 голосов
/ 26 мая 2020

Я уверен, что мне не хватает чего-то очевидного ... У меня есть простое текстовое поле 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>

...