javascript - AJAX live keyup 搞砸了搜索
问题描述
此特定代码执行学生姓名的实时 AJAX 搜索。它适用于keyup
功能。
Backspace当我按下键并加载search.php
文件时,此脚本正在执行 AJAX 。
我不希望此功能适用于任何键,但只能适用于字母表。
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url: "search.php",
method: "POST",
data: {
query: query
},
success: function(data) {
$('#result').html(data);
}
});
}
$('#search_text').keyup(function() {
var search = $(this).val();
if (search != '') {
load_data(search);
} else {
load_data();
}
});
});
到目前为止,这就是我学到的所有东西,所以如果有任何其他方法可以做到这一点,那将会很有帮助。谢谢你。
解决方案
试试这个:
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url: "search.php",
method: "POST",
data: {
query: query
},
success: function(data) {
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(ev) {
var searchString = $(this).val();
if (searchString != '') {
var letters = /^[A-Za-z]+$/;
if (searchString.match(letters)) {
load_data(searchString);
} else {
load_data();
}
}
});
});
-- 编辑 -- 根据您的评论,下面的代码将返回一个切片值;从我们的搜索中删除最后一个或无效的字符。
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url: "search.php",
method: "POST",
data: {
query: query
},
success: function(data) {
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(ev) {
var searchString = $(this).val();
if (searchString != '') {
var letters = /^[A-Za-z]+$/;
if (searchString.match(letters)) {
load_data(searchString);
} else {
searchString = searchString.substring(0, searchString.length - 1);
$('#search_text').val(searchString);
}
}
});
});
-- 编辑(第三次请求)下面的代码将清除您的结果 div 是最后一个 keyup 确定搜索输入框为空(不包含值)。
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url: "search.php",
method: "POST",
data: {
query: query
},
success: function(data) {
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(ev) {
var searchString = $(this).val();
if (searchString != '') {
var letters = /^[A-Za-z]+$/;
if (searchString.match(letters)) {
load_data(searchString);
} else {
searchString = searchString.substring(0, searchString.length - 1);
$('#search_text').val(searchString);
}
} else {
$('#result').html('');
}
});
});
推荐阅读
- swagger - 如何将 Swagger 的默认“响应内容类型”更改为“application/json”?
- javascript - 时间选择器禁止在手机上的字段中输入
- gitlab - 如何在 Gitlab 上查看文件的所有历史版本?
- ibm-cloud - 在 dropsolve 中带有回调的 docplex
- javascript - 使用地图获取属性是否禁用
- if-statement - 我不想写 60 个 'IF' 命令
- python - TypeError:将形状转换为 TensorShape 时出错:int() 参数必须是字符串或数字,而不是“元组”
- html - 使用 VB.Net 将 Excel 转换为 HTML
- e-commerce - 如何创建 Commerce Repeat Order 链接视图?
- mysql - Laravel 多连接计数