jQuery 表单自动提交

标签 jquery ajax

我正在尝试编写一个自动提交表单(类似于 google instant),现在我正在使用此脚本来执行此操作:

$(document).ready(function() {
    $('#string').change(function(){
        var url = $(this).val();
        $('#area').load('cgi/test.pl',{string:url});
    });
});

现在的问题是,在用户完成输入后,他将需要在输入字段之外单击。我尝试过使用 onkeyup 等而不是 change 但首先这会导致大量的请求,其次如果您在字段中粘贴文本,它将不起作用。我还尝试将 javascript setTimeout 与脚本结合使用,但无法真正使其工作。

基本上我所追求的是自动提交脚本,它可以“检测”用户何时仍在键入(因此提交会出现某种延迟),并且还可以检测文本何时粘贴到输入字段。

欢迎提出任何建议。

最佳答案

我会使用doTimeout plugin实现“去抖动”(例如: http://benalman.com/code/projects/jquery-dotimeout/examples/debouncing/ )。

这样,您就可以使用keyup。为了考虑到用户粘贴文本的情况,请保留 change 处理程序;只需在 change 触发时调用 keyup 处理程序即可。

关于jQuery 表单自动提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329412/

相关文章:

javascript - DataTable 在编辑后不记得分页页面

php - jquery ajax 在没有 Firebug 断点的情况下无法工作

php - 就垃圾邮件和机器人而言,这个 "tip a friend"函数安全吗?

mysql - Wordpress Ajax 向 MySQL 插入数据

php - 幻灯片背景图像

javascript - jQuery - Ajax post 请求加载同一页面并将表单数据添加到 URL

javascript - 获取相对于另一个父元素的元素的值

javascript - 无法在特定元素上使用鼠标悬停

jquery - 通过 JavaScript 重定向有多安全?

jquery - 表单按钮禁用在提交时不起作用