【发布时间】:2020-11-27 04:05:31
【问题描述】:
当我清除搜索功能的输入字段时,响应应该不会显示任何结果,而是提供完整的集合。有输入时它工作正常,但一旦我清除它,整个集合就会显示出来。这是 Laravel 控制器类。
public function search(Request $request)
{ if($request->ajax()){
$results = DB::table('PROPERTY_TAGS')->where('TAG_NAME','LIKE','%'.$request->search."%")->get();
$output='';
if(count($results)>0){
foreach($results as $result){
$output.='<p>'.$result->TAG_NAME.'</p>';
}
}else{
$output="<p>no data found</p>'";
}
return $output;
}
}
这是我的带有 laravel 刀片模板的 HTML:
<div class="row">
<div class="col s9 "> <input type="text" id="search" name="search" placeholder="Search" /></div>
<div class="col s3"><a href="sass.html"><i class="material-icons">search</i></a></div>
<div class="col s12">
<b>Ex: </b><i>Beltola, Zoo Road</i>
<!-- Suggestions will be displayed in below div. -->
<div id="display"></div>
</div>
</div>
这是脚本:
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#search').on('keyup',function(){
$value=$(this).val();
$.ajax({
type : 'GET',
url : '/search',
data:{'search':$value},
success:function(data){
if(data == '\0'){
$('#display').text('');
}
$('#display').html(data).show();
//alert(data.success);
}
});
});
</script>
【问题讨论】:
-
如果有空字符串,是否跳过 Ajax 调用?
If ($value.length === 0) return;? -
Naah mate 现在 ajax 函数完全停止了。没用
-
“停止”对我来说意义不大。请参阅下面的答案。