javascript - 在按下或更改事件时,触发 Ajax 以在 jQuery 中发送数据

标签 javascript jquery

我已经尝试了 keyup 和 change 功能,这就是为什么它们不成功的原因。 用户输入凭证代码,我想发送 ajax 请求,检查数据库中是否存在凭证。我试过:

$('#discount-voucher').keyup(function(event) {
    // Get the value
    let value = $(this).val()

    // Check if exists
    $.ajax({
        url: '{{ route('get-voucher') }}',
        type: 'POST',
        data: {_token: '{{ csrf_token() }}', code: value}
    })
    .done(function(data) {
        if (data == 'error') {
            $('span#voucher-error').text('Неавлиден ваучер')
        }
    })
    .fail(function() {
        console.log("error")
    })
    .always(function() {
        console.log("complete")
    })
})

但这些优惠券将通过电子邮件发送,假设用户复制粘贴它们。不起作用。 使用更改功能,用户必须在输入外部单击或按 enter 才能使该功能生效,我不希望这样,我也不想要一个提示/提示,上面写着“在输入外部单击 ot 按 enter 进行检查如果代金券有效”。所以我需要的是类似更改功能,无需单击或按 enter 即可生效

最佳答案

有一个粘贴事件,你可以像下面这样设置多个事件监听器:

$('#discount-voucher').on('keyup paste change', function () {
      //Do something  . . . .
});

您可能还需要限制 ajax 请求,这样它就不会因为键入而被调用得太频繁。

关于javascript - 在按下或更改事件时,触发 Ajax 以在 jQuery 中发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47137513/

相关文章:

javascript - '未捕获的语法错误 : Unexpected Token }' when trying to access a function

javascript - jQuery - mouseenter/mouseleave 定时器不起作用

jquery - 使用 jQuery 获取我将鼠标悬停在其上的元素的 ID?

javascript - 如果子元素包含字符串,如何删除容器

jquery - 在重新加载链接样式表时强制重新计算 $(...).css ("background-image")

javascript - 如果元素不存在,我会收到与添加条件函数相同的错误

javascript - 如何存储每个浏览器选项卡唯一的 ID?

javascript - UI 路由器的模拟别名状态

javascript - JSON 请求的无效标签错误