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

时间:2012-08-14 06:44:12

标签: javascript jquery kendo-ui

我有

<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()。这应该是当我尝试仅在用户输入文本或按下按钮时编码。

2 个答案:

答案 0 :(得分:1)

试试这个:

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

$("#search").on('keyup', doTheSearch);


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

答案 1 :(得分:1)

您正在调用该函数而不将其绑定到事件,这个:

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

应该是:

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