jquery - 当用户按键盘 5 次时执行 ajax 功能
问题描述
我想执行一个ajax函数。当且仅当用户按下他的键盘 5 次时,必须执行此 ajax 函数。
我将 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');
}
});
如果您有一些文件或其他东西可以帮助我,那就太好了!
感谢您的关注 !
解决方案
您可以创建一个变量,如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 次时才会运行。
推荐阅读
- asp.net-core - 尝试使用重定向到索引的按钮查看警报框
- pandas - 在熊猫数据框中以间隔的日期填充缺失的观测值
- mongodb - 将 Mongo Stitch 与 Firebase 存储结合使用?
- c# - 如何使用 CodeFirst 方法在 IdentityServer 4 的客户端表中添加新列?
- python - 计算机视觉算法改进激光圆点图案的建议更有特色
- ffmpeg - 将 M4a 采样率更改为自定义值
- laravel - 如何强制 Laravel Dusk 中的“类型”方法在浏览器中完全输入我的测试数据
- python - while循环修改全局变量
- java - 在实现弱侦听器时,将侦听器添加到什么源类型?(爪哇)
- html - 响应式html css花括号.brace.bottom:不工作后