输入上的键控事件在页面加载时触发

keyup event on input are firing on page load

本文关键字:加载 事件 输入      更新时间:2023-09-26

我有

<input type="text" name="search" id="search" placeholder="Enter search text..." />
<input type="submit" id="btnSearch" name="find" value="" />

$(document).ready(function () {    
$("#btnSearch").click(function () {
    doTheSearch();
});
$("#search").keyup(doTheSearch());
});

function doTheSearch() {
alert("");
var grid = $("#Grid").data("kendoGrid");
grid.dataSource.read();
};

我正在使用带有 mvc 包装器的 KendoUI 网格,不确定是否相关,但这也是该代码

@(Html.Kendo().Grid<E4.Administrasjon.Models.viewModels.vmUser>()
.Name("Grid")
.Columns(columns =>
{
    columns.Bound(p => p.BrukerID);
    columns.Bound(p => p.navn);
})
.DataSource(dataSource => dataSource
    .Ajax() // Specify that the data source is of ajax type
    .ServerOperation(false)
    .Read(read => read.Action("Users_Read", "User")
        .Data("searchData")
    )
    .PageSize(20)
)
.Pageable()    
)

问题是当页面加载时,函数doTheSearch()被触发。这应该因为我尝试编码仅在用户输入文本或按下按钮时触发。

您正在调用该函数,而不是将其绑定到事件,如下所示:

$("#search").keyup(doTheSearch());

应该是 :

$("#search").keyup(doTheSearch);

试试这个:

$("#btnSearch").on('click', function () {
    doTheSearch();
});
$("#search").on('keyup', doTheSearch);

function doTheSearch() {
alert("x");
}