如何在选择时将自定义值传递给自动完成输入类型?

时间:2017-06-28 12:58:19

标签: javascript jquery autocomplete

这是我的代码:

    $(function(){
      // User autocomplete
          $('#search').autocomplete({
              source: function(req,res) {
                  $.ajax({
                      url: "/auto",
                      dataType: "json",
                      type: "GET",
                      data: {
                          term: req.term
                      },
                      success: function(data) {
                          res($.map(data, function(item) {

                              return {
                                  "label" : item.name,
                                  "value" : item.name,
                                  "id"    : item.id,
                              };
                          }));
                      },
                      error: function(xhr) {
                          alert(xhr.status + ' : ' + xhr.statusText);
                      }
                  });
              },
              select: function(event, ui) {

                  alert(ui.item.id);

              }
          });

    });

当我提醒 ui.item.value 时,它运行正常;但是当我使用 ui.item.id 时它不起作用;我得到未定义的错误。 在这里提醒身份证的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

该死!我犯了一个愚蠢的错误。成功函数中的 item._id 而不是id。

答案 1 :(得分:0)

这只是一次尝试,我认为id名称的结果含糊不清。 select函数会在item.idid

中混淆

所以试试这个希望它会帮助你。

return {
          "label" : item.name,
          "value" : item.name,
          "idx"   : item.id,
       };


select: function(event, ui) {
              alert(ui.item.idx);
        }