jQuery表单自动提交
我正在尝试编写一个自动提交表单(类似于google instant),现在我正在使用以下脚本:jQuery表单自动提交,jquery,ajax,Jquery,Ajax,我正在尝试编写一个自动提交表单(类似于google instant),现在我正在使用以下脚本: $(document).ready(function() { $('#string').change(function(){ var url = $(this).val(); $('#area').load('cgi/test.pl',{string:url}); }); }); 现在的问题是,在use完成键入后,他需要在输入字段外单击。我尝试过使用o
$(document).ready(function() {
$('#string').change(function(){
var url = $(this).val();
$('#area').load('cgi/test.pl',{string:url});
});
});
现在的问题是,在use完成键入后,他需要在输入字段外单击。我尝试过使用onkeyup
等来代替change
,但首先这会导致大量的请求,其次,如果在字段中粘贴文本,它将不起作用。我还尝试将javascriptsetTimeout
与脚本结合使用,但实际上无法使其正常工作
基本上,我所追求的是自动提交脚本,它可以“检测”用户何时仍在键入(因此提交会有某种延迟),还可以检测文本何时已粘贴到输入字段
为任何建议干杯。我将使用实现“去抖动”(示例:)
这样,您就可以使用
keyup
。要解释用户粘贴文本的原因,请保留change
处理程序;当change
触发时,只需调用keyup
处理程序。为什么setTimeout
不起作用?尝试这样做:
$(document).ready(function() {
var currentTimeout = null;
$('#string').keyup(handler);
$('#string').change(handler);
var handler = function() {
if(currentTimeout != null) {
clearTimeout(currentTimeout);
}
currentTimeout = setTimeout(function() {
var url = $(this).val();
$('#area').load('cgi/test.pl',{string:url});
}, 750);
};
});
我用
setTimeout
实现它的方法是,我无法让脚本提交完整的字符串,它总是提交缺少最后一个或两个字符的字符串(取决于我键入的速度),不幸的是,我找不到该版本的脚本。无论如何,为上面的脚本干杯,我会尽快测试它,怀疑这与你没有清除之前的超时有关。为建议干杯,我会检查它!