社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

编辑数据devbridge/jquery自动完成时出现问题

Gustavo Herrera • 5 年前 • 1410 次点击  

您好,当我试图用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/autocomplete

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40244
 
1410 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Twisty
Reply   •   1 楼
Twisty    6 年前

如果您对使用jquery ui autocomplete感兴趣,则需要查看以下示例:

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

用你的代码,它会像这样,用 jquery ui自动完成

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/

他们说:

已知问题

如果将它与jquery ui库一起使用,它还有一个名为autocomplete的插件。在这种情况下,可以使用插件别名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('');
  }
});

希望能有所帮助。