所以我在表单中输入了这个文本,并且我希望在用户在文本输入中键入文本时更新div。
<p><label for="movie_name">Film: </label> <input type="text" name="movie_name" class="required" onkeydown="changediv2(this.value)" /></p>
<p><div id="ajax_update"></div></p>
我的js方法:
function changediv2(str) {
$('#ajax_update').html(geturl('http://url/search/movie?query='+str));
}
如果我输入浏览器http://url/search/movie?query=someString,我会显示一些html。 但是当我通过这个ajax调用调用它时,没有任何反应......
我的geturl方法:
function geturl(addr) {
var r = $.ajax({
type: 'GET',
url: addr,
async: false
}).responseText;
return r;
}
我看不出有什么问题......
请帮帮我! :)
答案 0 :(得分:3)
有可能,您的函数在客户端收到ajax响应之前返回。我建议删除async
选项并在$.ajax
成功回调中执行注入,例如:
function changediv2(addr, str) {
$.ajax({
type: 'GET',
url: addr + str,
success: function(response) { $('#ajax_update').html(response) }
});
}
答案 1 :(得分:0)
你的功能应该是:
function geturl(addr) {
$.ajax({
type: 'GET',
url: addr,
async: false,
success:function(response) {
return response;
};
});
}
答案 2 :(得分:0)