javascript - 使用 jQuery 提交按钮的替代方案

标签 javascript jquery forms

目前,我正在使用 ajax 回发将数据传递到我的 Controller ,我从那里开始施展魔法。我现在遇到的问题是,我们删除了提交按钮,而是使用 .keyup() 附加了一个处理程序,在较小的数据库上,这效果很好!然而,当将其移动到更大的数据库时,正如您可能猜到的那样,它会导致各种问题,从延迟响应到崩溃等。所以它不起作用。我对堆栈溢出的问题是这样的:提交表单的用户友好版本是什么? 由于前端用户可能会搜索单个字符值(例如 userid 6 中的 6),因此我无法将其限制为最小字符提交。我们不需要延迟计时器,因为这可能会以多种不同的方式产生适得其反的效果。所以基本上我已经排除了 .delay().blur().keyup()

最佳答案

如果您的要求是不使用提交按钮,而是在用户键入时处理输入,那么我过去曾使用过类似的解决方案。

首先定义一个函数来管理延迟,如下所示:

var inputDelay = (function () {
    var timer = 0;
    return function (callback, ms) {
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
    };
})();

然后,对于实际的 ajax 调用,在 onkeyup 事件中执行类似以下操作:

inputDelay(function () { 
    //AJAX-call goes here 
}, 400)

请注意,这并不是处理服务器响应顺序的通用解决方案。您很可能会收到发送到服务器的多个 AJAX 请求,并且此代码不会执行任何操作来确保您只处理最新的调用。

关于javascript - 使用 jQuery 提交按钮的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207544/

相关文章:

javascript - 循环遍历javascript中动态添加的输入类型单选列表的列表

javascript - 从 Momentjs 数组中添加阻止星期几的日期

javascript - 将空格视为字符?

jquery 表单使用 .on() 提交

ruby - 尝试将枚举放入 Rails 5 中的选择表单辅助类中

javascript - React JS 中的菜单切换

jquery - jquery 的 Css3 动画延迟

javascript - jQuery/Javascript - 自行运行脚本函数

javascript - 无法从 React Form 中的选择组件取回提交的数据

javascript - 延迟回调异常: Error: No such template: wiki