我的表单中有两个字段,客户名称,卡名,我正在尝试实现自动完成功能以从数据库中获取详细信息以自动填充其余字段。
我已经在第一个输入字段上进行了预先输入,但是,当对第二个字段使用相同的方法(即卡号)时,根本不会出现自动填充功能。我不确定自己在做什么错,在这里可以得到一些指导。
这是我的create.blade.php
<div class="form-group">
<strong>Customer Name:</strong>
<input class="typeahead form-control" type="text" id='cust' onkeypress="myFunction1()" placeholder="Customer Name">
</div>
<div class="form-group">
<strong>Card Number:</strong>
<input class="typeahead form-control" type="text" id='card' autocomplete="off" onkeypress="myFunction()" placeholder="Card Number">
</div>
<script>
function myFunction() {
var path = "{{ route('autocompletecard') }}";
$('#card').typeahead({
source: function (query, process) {
return $.get(path, { query: query }, function (data) {
return process(data);
});
}
});
}
function myFunction1()
{
var path = "{{ route('autocomplete') }}";
$('#cust').typeahead({
source: function (query, process) {
return $.get(path, { query: query }, function (data) {
return process(data);
});
}
});
}
</script>
这是我的受让人控制器:
public function autocomplete(Request $request)
{
$data = Customer::select("name")
->where("name","LIKE","%{$request->input('query')}%")
->get();
return response()->json($data);
}
public function autocompletecard(Request $request)
{
$data = Card::select("number")
->where("number","LIKE","%{$request->input('query')}%")
->get();
return response()->json($data);
}
在检查浏览器自动完成卡上的控制台和网络选项卡正在执行后,它将返回卡号作为响应。但不会显示为自动完成。