typeahead не показывает никаких результатов для второго ввода - PullRequest
0 голосов
/ 01 января 2019

Я использую Typeahead для двух входов, я заставил его работать для первого входа, но он не работает для второго входа, я не уверен, в чем здесь проблема и почему он не работает, я изменил идентификаторыи все, но запрос не показывает никаких подробностей вообще.

вот мой create.blade.php

@csrf

    <div class="col-xs-12 col-sm-12 col-md-12">
        <div class="form-group">
            <strong>Customer Name:</strong>
          <input class="form-control" autocomplete="off" type="text" name="customer_id" id='cust' onkeypress="myFunction()" placeholder="Customer Name">
        </div>
        <div class="form-group">
            <strong>Card Number:</strong>
            <input class="form-control" type="text" name="customer_id" id='card' onkeypress="myFunction1()" placeholder="Customer Name">
          </div>
<script>
function myFunction()
{
  var path = "{{ route('autocomplete') }}";
  $('#cust').typeahead({
    name: 'cust',
      source:  function (query, process) {
      return $.get(path, { query: query }, function (data) {

              return process(data);
          });
      }
  });
}
function myFunction1()
{

  var path = "{{ route('autocompletecard') }}";
  $('#card').typeahead({
    name: 'card',
      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("cardno")
                          ->where("cardno","LIKE","%{$request->input('query')}%")
                          ->get();

                  return response()->json($data);
              }

web.php:

Route::get('autocomplete', 'AssigneeController@autocomplete')->name('autocomplete');
Route::get('autocompletecard', 'AssigneeController@autocompletecard')->name('autocompletecard');

1 Ответ

0 голосов
/ 01 января 2019

Возможно, вашему браузеру не нравится то, что TypeAhead имеет автоматически добавляемое для элемента автозаполнения.Попробуйте вручную добавить autocomplete="off" ко второму входу.Вы можете проверить, что добавил TypeAhead - посмотрите на свой источник.Может не работать в FF, но может в Chrome.Браузеры разборчивы в этом вопросе.

Можно попробовать это:

<input class="form-control" autocomplete="off" type="text" name="customer_id" id='card' onkeypress="myFunction1()" placeholder="Customer Name">

Или попробуйте autocomplete = "false".Chrome иногда отключается.

...