2012-08-14 20 views
0

輸入keyup事件被射擊頁面加載

<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(); 
}; 

我使用KendoUI網格MVC的包裝,不知道相關,但這裏的代碼也

@(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()被觸發。這應該是因爲我試圖在用戶輸入文本或按下按鈕時僅激發代碼。

回答

1

您invocing的功能,而不是將它綁定到一個事件,這樣的:

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

應該是:

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

謝謝。工作完美。 – espenk 2012-08-14 12:24:33

1

試試這個:

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

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


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