【发布时间】:2014-03-27 17:29:50
【问题描述】:
ajax 调用后我的 javascript 被锁定。
当用户按下回车键时,我调用我的 c# 方法来搜索用户输入的城市,然后显示温度,但是当搜索结束时,javascript 停止工作。我发现错误出现在以下几行: var div = document.getElementById('rb-grid'); div.innerHTML = resp.responseText + div.innerHTML;
代码:
$(document).ready(function () {
$('#search-bar').keyup(function (event) {
if (event.keyCode == 13) {
myFunction();
}
});
function myFunction() {
var city = $('#search-bar').val();
$.ajax({
url: '@Url.Action("getWeatherSearch", "Index")',
data: { city: city },
async: false,
complete: function (resp) {
var div = document.getElementById('rb-grid');
div.innerHTML = resp.responseText + div.innerHTML;
Boxgrid.init();
}
});
} });
HTML:
<div align="center" class="div-search-bar">
@Html.TextBox("search-bar", "", new { @class = "search-bar", placeholder = "search" })
</div>
【问题讨论】:
-
#rb-grid是什么?可能是父元素,而您正在用新元素替换#search-bar元素? -
除非您有充分的理由将其包含在内,否则您应该删除
async: false。 -
@Andy 我使用 async: false,因为我需要方法中的值
-
什么是
Boxgrid.init()? -
@adeneo #rb-grid 是我将添加一些方法返回给我的 html 代码的地方。
标签: c# javascript jquery ajax