laravel - 自动完成功能不适用于移动视图
问题描述
您好,我正在我的项目中创建搜索任务,它适用于桌面视图,但是当我在移动设备中打开我的网站并按下键时,键盘会在第二秒内打开并关闭,这是我的代码中的问题。什么是错误?为什么代码在移动视图中不起作用?
//html
<form class="ps-search--header" action="#" method="post">
{{ csrf_field()}}
<input class="form-control" type="text" placeholder="Search Product…" id="product_name">
<button><i class="ps-icon-search"></i></button>
<div id="product_list"></div>
</form>
//控制器
public function fetch(Request $request)
{
if($request->get('query'))
{
$query = $request->get('query');
$data = DB::table('products')
->where('product_name', 'LIKE', "%{$query}%")
->get();
$output = '<ul class="dropdown-menu" style=" display:block; ;width:100%">';
foreach($data as $row)
{
$name=[];
$name=explode(" ",$row->product_name);
$output .= '
<li><a href="/productDetail/'.$row->product_slug.'">'.$row->product_name.'</a></li>
';
}
$output .= '</ul>';
echo $output;
}
}
//自动完成
$('#product_name').keyup(function(){
var query = $(this).val();
if(query != '')
{
var _token = $('input[name="_token"]').val();
$.ajax({
url:"/autocomplete",
method:"get",
data:{query:query, _token:_token},
success:function(data){
$('#product_name').fadeIn();
$('#product_list').html(data);
}
});
}
});
$(document).on('click', 'li', function(){
$('#product_name').val($(this).text());
$('#product_list').fadeOut();
});
解决方案
这种keyup
wold 有时不适用于在桌面上运行良好的移动设备您可以在您的自动完成功能上使用此 Keyup 它在两者上的工作检查下面的代码
$('#product_name').on('keyup input', function(e){
if(e.keyCode == 13) {
$("input").blur();
}
var query = $(this).val();
if(query != '')
{
var _token = $('input[name="_token"]').val();
$.ajax({
url:"/autocomplete",
method:"get",
data:{query:query, _token:_token},
success:function(data){
$('#product_name').fadeIn();
$('#product_list').html(data);
}
});
}
});
$(document).on('click', 'li', function(){
$('#product_name').val($(this).text());
$('#product_list').fadeOut();
});
推荐阅读
- flask - 如何使用 Flask 在调试模式下运行应用程序
- javascript - 在 Javascript 中从父类调用 Childs 函数
- php - Codeigniter 不上传 png 格式的图像文件
- npm - 纱线重定向跟踪版本控制中的某些 npm 包
- google-sheets - 表格公式 - ArrayFormula 和 CountIf
- laravel - Encrypter.php 第 73 行中的 FatalThrowableError:调用未定义函数 openssl_encrypt()
- angular5 - @output 不能以角度工作
- ajax - 来自单个浏览器的 HTTP 调用排序
- windows - 为什么 readcsv("universe.csv") 会导致错误但 readcsv(f) 工作正常
- ios - 在发送按钮之前单击联系人按钮时出现黑屏