1

我无法弄清楚为什么在 jquery 自动完成上,选择函数会弄乱数据。我的意思是value=label当它不应该的时候。

控制台日志输出console.log(val);

Object { value="1558825", label="Cree sus propias noticias cliente", icon="http://servidor...News/10_ae4e0.jpg"}

控制台日志输出console.log(ui.item);

Object { label="Cree sus propias noticias cliente", value="Cree sus propias noticias cliente"}

代码:

$("#search_input").autocomplete({

  source: function(req, add) {

    $.getJSON("do.php", { OP: "news_search", category: cat_id, get: req }, function(results){

      var suggestions = [];

      $.each(results, function(i, val){
        console.log(val);
        suggestions.push(val.label)
      });

      add(suggestions);

    });
  },
  select: function(event, ui){
    console.log(ui.item); // Here value and label is the same, when it shouldn't
    $("#search_input").val(ui.item.label).attr('data-target', ui.item.value);
    return false;
  },
  minLength: 2
});

任何想法为什么会发生这种情况?

4

1 回答 1

1

代码 suggestions.push(val.label)只推送标签。ui所以除了对象中的标签之外,你什么也得不到

尝试推送 val 对象suggestions.push(val)

于 2012-05-23T12:58:44.497 回答