Выполнить функцию AJAX, когда пользователь нажимает 5 раз на клавиатуре - PullRequest
0 голосов
/ 07 мая 2019

Я хочу выполнить функцию ajax.Эту функцию ajax следует выполнять тогда и только тогда, когда пользователь нажимает 5 раз на клавиатуре.

Я использую Jquery для запроса ajax.

Я пробую это, но оно все еще не работает:

// What i tried to do 
$("#num_cppap").keypress(function(event){
if (event.which == 5){
// The AJAX function
$( "#num_cppap" )
       .focusout(function() {
        var numCppap = $(this).val();
        var isBizarre = false;
        var searchBy5Chars = false;
        if(numCppap.length > 0) {
            if(numCppap.length == 5){
                searchBy5Chars = true;
                $.ajax({
                    type : "POST",
                    url : '/gestion/gestDepot/ajaxrecherchecppap',
                    async : false,
                    dataType : 'json',
                    data : {
                        'num_publication' : numCppap,
                        'isBizarre' : isBizarre,
                        'searchBy5Chars' : searchBy5Chars
                    },
                    success : function(publication) {
                        if ($.isEmptyObject(publication)) {
                            resetTitreDepot('num_cppap');
                            alert('Le numéro de CPPAP ne correpond à aucun contrat.');
                        } else {
                            $(this).dialog('close');
                            $("#noPublicationCPPAP").hide();

                            gestionTitreDepot(publication);
                        }

                   }
                 });
             }
         } 
        else {
            resetTitreDepot('num_cppap');
        }
    })
    }
    else {
        alert('you stupid');
    }
});

Если у вас есть какие-то документы или что-то, что может мне помочь, было бы очень приятно!

Спасибо заваше внимание !

1 Ответ

2 голосов
/ 07 мая 2019

Вы можете создать переменную наподобие var number=0;, а внутри функции keypress вы увеличите ее: number++;

Затем поместите код, который вы хотите запустить, в следующую if инструкцию:

if(number==5){...}

Это означает, что каждый раз, когда вы нажимаете клавишу, число будет увеличиваться, и как только оно достигнет 5, будет выполняться код внутри if(number==5){...}.

Вот базовый пример:

$(function(){
var number=0;
$("#text").on("keypress",function(){
number++;
if(number==5){
alert("Pressed 5 times!");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="Write 5 characters here" id="text">

Или, если вы хотите, чтобы он запускался при каждом нажатии клавиш 5 раз, вы можете просто заменить if(number==5) на if(number%5==0)

$(function(){
var number=0;
$("#text").on("keypress",function(){
number++;
if(number%5==0){
alert("Pressed 5 times!");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="Write 5 characters here" id="text">

Вы также можете реализовать этот метод в своей функции, перед вызовом ajax напишите: if(number==5) или if(number%5==0). Тогда ajax будет работать только в том случае, если какая-либо клавиша была нажата 5 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...