在我的索引視圖,我必須執行,當用戶無論點擊Enter鍵或點擊搜索圖標下面的相關jQuery代碼觸發搜索:jQuery keyup事件後部分視圖重新加載不工作?
<div class="homeContent">
@Html.Partial("~/Views/Shared/_homeIndexContent.cshtml")
</div>
@section Scripts {
<script type="text/javascript">
$(document).ready(function() {
// Set focus on load to the Search box.
document.getElementById("Search").focus();
$("#Search").keyup(function(event){
if(event.keyCode==13){
alert("Index.cshtml - Enter Pressed - Method inside Document.Reader().");
searchAssets();
}
});
// Called when user clicks the magnifying glass icon next to the Searchbox.
function searchAssets() {
alert("Index.cshtml - searchAssets() called.");
var searchValue = document.getElementById("Search").value;
$.ajax({
url: '@Url.Action("search", "Home")',
data: { searchCriteria: document.getElementById("Search").value },
success: function (resp) {
$(".homeContent").html(resp);
document.getElementById("Search").value = searchValue;
document.getElementById("Search").focus();
var rows = $('.grid-table tbody tr').length;
$('#rowCount').html(rows);
setVerifyBtnClass();
}
});
}
的HomeController:
public ActionResult Search(string searchCriteria)
{
fillPagingIntervalList();
var SearchResults = db.TABLE.ToList().Where(m.Status.STATUS_DESCRIPTION != null && m.Status.STATUS_DESCRIPTION.ToString().ToUpper() == searchCriteria.ToUpper() || // Other search Code
// Return the "refreshed" partial view without reloading entire page.
return PartialView("~/Views/Shared/_homeIndexContent.cshtml", SearchResults);
}
在第一次搜索時,一切似乎都正常工作,但部分視圖已重新載入,我無法再通過單擊ENTER鍵執行新的搜索。 我仍然可以通過點擊搜索圖標觸發新搜索,但爲什麼我不能再使用輸入密鑰?
如果我只是重新加載部分視圖,我會認爲我的jQuery內的Document.Ready()應該仍然可以訪問?
這實際上是@AnalyticLunatic希望的工作..發生這種情況是因爲'$(「#Search」).keyup(function(event)'在文檔準備就緒時運行,並且此時它所做的更改不再是同一個對象,'jQuery'不知道去哪裏看,因爲代碼沒有被再次執行......我說這只是爲了解釋爲什麼會發生這種情況,以及爲什麼顯示的代碼有效 – nosthertus