Проблема Редактировать данные devbridge / jQuery-Autocomplete

привет приходит приветствие, когда я пытаюсь отредактировать запись в ajax

 {"suggestions": [{"value": "Pendiente","data": 1},{"value": "Programar","data": 2},}

но когда я редактирую запись, мне приходит число, которое я имею в виду ДАННЫЕ, но оно показывает мне число, и я хочу получить это значение. Любые идеи?

мой код:

$('#eestado').val(estatus); // example estatus = 1
$('#eestado').autocomplete({
    serviceUrl: '{{ url('/getestados/') }}',
    onSelect: function (suggestion) {
        $('#eestado').val(suggestion.data);
    },
    formatResult: function(suggestion, currentValue){
        if (suggestion.data === null) {
            return "Create a new tag";
        }

        return suggestion.value;
    },
    onInvalidateSelection: function() {
        $('#eestado').val('');
    }
});

Я использую плагины, это JQuery / автозаполнение

Добро пожаловать в Stack Overflow. Ваш код пользовательского интерфейса jQuery не соответствует параметрам и методам пользовательского интерфейса jQuery для автозаполнения (api.jqueryui.com/autocomplete). Вы используете какой-то дополнительный плагин?

Twisty 26.10.2018 21:37

это использовать JQuery / автозаполнение

Gustavo Herrera 26.10.2018 22:01

Хорошо, я не вижу serviceUrl в качестве опции для автозаполнения. Я не вижу onSelect, formatResult или onInvalidateSelection как события для автозаполнения. Вот почему я спросил, они не подходят для этого виджета.

Twisty 26.10.2018 22:10

Кроме того, где термин запроса передается вашему URL-адресу, чтобы он знал, какие конкретные элементы отображать в наборе результатов?

Twisty 27.10.2018 01:17

Дело в том, что если вы увидите URL-адрес плагина, который я использую, вы увидите, что это не тот плагин, который вы комментируете.

Gustavo Herrera 27.10.2018 01:27

Хорошо, понятно, это devbridge.com/sourcery/components/jquery-autocomplete, а НЕ jQuery UI.

Twisty 27.10.2018 01:29
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
6
423
1

Ответы 1

Если вы заинтересованы в использовании автозаполнения jQuery UI, вам нужно будет просмотреть следующий пример:

http://jqueryui.com/autocomplete/#multiple-remote

В вашем коде это будет выглядеть примерно так: Автозаполнение пользовательского интерфейса jQuery

var estatus = 1;
var exampleData = {
  "suggestions": [{
    "value": "Pendiente",
    "data": 1
  }, {
    "value": "Programar",
    "data": 2
  }]
};
$(function() {
  function split(val) {
    return val.split(/,\s*/);
  }

  function extractLast(term) {
    return split(term).pop();
  }

  $('#eestado').val(estatus); // example estatus = 1
  $('#eestado').on("keydown", function(event) {
    if (event.keyCode === $.ui.keyCode.TAB &&
      $(this).autocomplete("instance").menu.active) {
      event.preventDefault();
    }
  }).autocomplete({
    source: function(req, resp) {
      var url = "{{ url('/getestados/') }}";
      var results = [];
      $.get(url, {
        q: extractLast(req.term)
      }, function(data) {
        $.each(data.suggestions, function(k, v) {
          results.push({
            label: v.value,
            value: v.data
          });
        });
      });
      resp(results);
    },
    focus: function() {
      // prevent value inserted on focus
      return false;
    },
    select: function(event, ui) {
      var terms = split(this.value);
      terms.pop();
      terms.push(ui.item.value);
      terms.push("");
      this.value = terms.join(", ");
      return false;
    }
  });
});
<link rel = "stylesheet" href = "//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel = "stylesheet" href = "/resources/demos/style.css">
<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>
<script src = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input id = "eestado" type = "text" />

Для автозаполнения jQuery

В своем комментарии вы упоминаете, что используете альтернативный метод автозаполнения jQuery: https://www.devbridge.com/sourcery/components/jquery-autocomplete/

Они говорят:

Known Issues

If you use it with jQuery UI library it also has plugin named autocomplete. In this case you can use plugin alias devbridgeAutocomplete:

$('.autocomplete').devbridgeAutocomplete({ ... });

Так что будьте внимательны, если вы включаете обе библиотеки. Для вашего кода я бы изменил только один элемент:

onSelect: function (suggestion) {
  $('#eestado').val(suggestion.value);
}

Когда пользователь делает выбор, на входе появляется value, а не data.

Полный код:

$('#eestado').autocomplete({
  serviceUrl: '{{ url('/getestados/') }}',
  onSelect: function (suggestion) {
    $('#eestado').val(suggestion.value);
  },
  formatResult: function(suggestion, currentValue){
    if (suggestion.data === null) {
      return "Create a new tag";
    }
    return suggestion.value;
  },
  onInvalidateSelection: function() {
    $('#eestado').val('');
  }
});

Надеюсь, это поможет.

Очень хорошо, я постараюсь проверить эту процедуру, большое спасибо ... Я откорректирую и посмотрю результат. +1

Gustavo Herrera 27.10.2018 01:45

Но я хочу, чтобы текст отображался, а значение - это число

Gustavo Herrera 27.10.2018 01:49

@GustavoHerrera См. Вторую половину ответа относительно вашего конкретного кода.

Twisty 27.10.2018 02:02

попробуйте, как вы упомянули во второй части, но при загрузке формы поле показывает мне идентификатор, а не текст. Теперь, когда я удаляю информацию и пишу другую, я получаю букву, но когда я вижу ее значение, это буква, а не цифра. Это проблема, которую я представляю сейчас. Но бывает при редактировании

Gustavo Herrera 27.10.2018 02:14

@GustavoHerrera, судя по вашему описанию, ваша форма загружается с $('#eestado').val(estatus); , и вы упомянули, что estatus - это 1. Так что я не уверен, чего вы ожидали.

Twisty 27.10.2018 02:19

Если точно, при загрузке формы для редактирования мне приходит значение 1, но его связь с suggetions.value = "pending", если, например, я редактирую другую запись, где status = 2, тогда suggetions.value = "Schedule" ...

Gustavo Herrera 27.10.2018 02:51

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

Gustavo Herrera 27.10.2018 02:53

@GustavoHerrera Я бы посоветовал вам отредактировать свой пост и включить более подробную информацию. Похоже, что происходит что-то еще, и комментарии нечеткие.

Twisty 27.10.2018 03:53

Другие вопросы по теме