【发布时间】:2014-10-14 22:10:41
【问题描述】:
我正在使用 jQuery 开发一个自动完成的建议表单,我的问题是 KEYPRESS 发送带有不完整查询的 POST 请求(将 -1 字符剩余到实际查询)。
这里是 jQuery 代码:
$(function(){
search = $(".left");
search_input = $(".left input.text");
search_input.click(function(){
$(".left form").append("<div class=\"search-capa admitido\"></div>");
search_capa = $(".search-capa");
result_search_capa = $(".search-capa");
})
$(".left value.text").keypress(function(){
value = $(".left input.text").val();
value = value.replace(" ","+");
console.log(value);
getConec(value);
})
function getConec(kery){
$.post("suggest.php",{q:kery},function(data){
result_search_capa.html(data);
var li = $('.search-capa a');
var liSelected;
moveoption()
})
}
function moveoption(){
$(document).keydown(function(e){
if(e.which === 40){
if(liSelected){
liSelected.removeClass('selected');
next = liSelected.next();
if(next.length > 0){
liSelected = next.addClass('selected');
$('.left input.text').val(liSelected.text());
}else{
liSelected = li.eq(0).addClass('selected');
$('.left input.text').val(liSelected.text());
}
}else{
liSelected = li.eq(0).addClass('selected');
$('.left input.text').val(liSelected.text());
}
}else if(e.which === 38){
if(liSelected){
liSelected.removeClass('selected');
next = liSelected.prev();
if(next.length > 0){
liSelected = next.addClass('selected');
$('.left input.text').val(liSelected.text());
}else{
liSelected = li.last().addClass('selected');
$('.left input.text').val(liSelected.text());
}
}else{
liSelected = li.last().addClass('selected');
$('.left input.text').val(liSelected.text());
}
}
});
}
})
如果我搜索“Web developer”,POST 请求会发送“Web developer”(最后一个字符总是丢失)。为什么?有什么建议吗?
【问题讨论】:
标签: javascript jquery ajax