带有Ajax onkeypress的输入字段导致输入被删除
问题描述:
我在一个网站上有一个输入字段,我正在使用一个链接到它的jquery ajax脚本。每次按下某个键时,ajax脚本都会搜索与输入字段的值匹配的字符串,如果找到该字符串,脚本会更新页面上的div并将输入字段的值设置为空,以便用户有一个新的空间来键入一个新的字符串。但是,如果用户键入第一个字符串并且脚本使用响应数据更新div并清除输入字段值,则用户不必等待片刻就可以再次开始输入,而是键入到字段中的任何文本(在接下来的两秒钟左右)被删除后,他们键入它。我只是想停止他们的文本被删除,如果他们要键入一个新的字符串,在第一个验证后不久,带有Ajax onkeypress的输入字段导致输入被删除
这里是jquery脚本,更新的股利,这是由输入解雇(ID为:搜索栏)的onkeypress事件事件:
function search(status){
if($("#searchbar").val().length > 1){
$.get("http://www.website.com/subfolders/some_php_script.php",
{l: status, q:$("#searchbar").val()},
function(data){
$("#div-to-update").html(data);
}
);
}
}
编辑:#searchbar是不是得到更新
的DIV中
答
我已经找到了答案,我几乎可以肯定它与我的Ajax可能射击太多次做{有人可以确认这是否是连一个真正的问题?}
我设置一个布尔值变量作为决定是否不是字符串已经被发现了,如果是这样的话那么什么都得到更新,这里是固定码的控制:
var found = false; //initialized
function search(status){
if($("#searchbar").val().length > 1){
$.get("http://www.website.com/subfolders/some_php_script.php",
{l: status, q:$("#searchbar").val()},
function(data){
if(!found){
$("#div-to-update").html(data);
found = true;
}
}
);
}
}
您可以用'keyup',而不是'keypress' 。 – undefined 2012-07-24 14:41:44
搜索栏是否在div-to-update? – 2012-07-24 14:46:24
''.unbind()'当你传递数据的引用到服务器时的keyup函数,在HTML更新后重新'绑定()'keyup函数。 – Ohgodwhy 2012-07-24 14:46:45