小编Tar*_*uin的帖子

jQuery keyup延迟

希望这对于某人来说是一个快速而简单的方法.我使用大量的javascript/jquery相当新,我有以下设置从数据库中提取客户名称并在用户输入客户ID时显示它.

一切都很好,但它会搜索每个密钥.我知道我可以把它改成模糊,但是我希望它能够在延迟时进行搜索.

这是当前的代码:

function postData(){
    var id = $('#id').val();

    $.post('inc/repairs/events-backend.php',{id:id},   
        function(data){
        $("#display_customer").html(data);
    });
    return false;
}

$(function() {
    $("#id").bind('keyup',function() {postData()});
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,它绑定到每个keyup,这意味着如果您搜索得太快,可能会因为它仍然被加载而导致错误的结果.(即如果没有找到匹配项,则会显示错误,并且输入足够快会使用户需要退格并重新键入最后一个数字)

有人可以协助为现有代码添加延迟,并且如果可能的话,对您所做的更改进行一些小的解释,我不仅仅是在不理解的情况下进行复制和粘贴.

----编辑----

这是我完成的代码,谢谢你们!

function postData(){
    var id = $('#id').val();

    $.post('inc/repairs/events-backend.php',{id:id},   
        function(data){
        $("#display_customer").html(data);
    });
    return false;
}

$(function() {
    var timer;
    $("#id").bind('keyup input',function() {
        timer && clearTimeout(timer);
        timer = setTimeout(postData, 300);
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery delay

8
推荐指数
2
解决办法
1万
查看次数

防止用户按文字区域输入Enter

我有一个相当复杂的形式,有多个阶段,有许多不同的文本字段和文本区域.它在使用过的条形码中使用的环境默认情况下是输入的,并且可以选择使用它们扫描大量产品,因此关闭输入功能已成为一个禁忌.

我正在使用表单向导脚本,它在输入阶段处理客户端验证.填写表单时输入键被中断,并且在刷新页面之前拒绝提交,此脚本会中断.

<a href="javascript:;" class="btn green button-submit">Submit <i class="m-icon-swapright m-icon-white"></i></a>
Run Code Online (Sandbox Code Playgroud)

我有以下代码,可以防止在表单上输入,并允许在单击上面的链接时提交表单.

$(window).keydown(function (event) {
    if (event.keyCode == 13) {
        event.preventDefault();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是这可以防止在textarea中使用输入.我做了一些研究并尝试使用is()jQuery中的运算符

$(document).ready(function () {
    $(window).keydown(function (event) {
        if (event.keyCode == 13 && !event.is("textarea")) {
            event.preventDefault();
            return false;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

这不起作用,它无法阻止输入中的输入键,并使表单停止提交,就像之前一样.

最后,如果验证在表单上传递,这是处理提交表单的javascript

$('#form_wizard_1 .button-submit').click(function () {
    // Can put more onsubmit processing here
    document.getElementById('submit_form').submit();
}).hide();
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何阻止所有输入的输入键除了textareas.我并不假装自己是一名JavaScript开发人员,尽管我正在努力学习.以下是我读过的文章,试图改编代码或未能理解它如何以正确的方式适用于我:

通过按Enter键阻止用户提交表单

通过按Enter#2阻止用户提交表单

禁用页面上的输入键,但不在textarea中


*关于最后一个链接,我需要一个全局解决方案,自动阻止它在表单中可能存在的所有textareas.

一如既往,感谢您的帮助.

javascript forms jquery

5
推荐指数
1
解决办法
4217
查看次数

标签 统计

javascript ×2

jquery ×2

delay ×1

forms ×1