Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未保存Jquery自动完成所选id_Jquery_Jquery Autocomplete - Fatal编程技术网

未保存Jquery自动完成所选id

未保存Jquery自动完成所选id,jquery,jquery-autocomplete,Jquery,Jquery Autocomplete,由于某些原因,我试图从jquery自动完成中获取所选的值,但无法获取id。我在这里看到了一个解决方案,但我的数据返回如下所示:如何保存id 我的数据 [{"id":3,"homename":"DCosta"}] 我的代码 $("#lastname").autocomplete({ source: function (request, response) { var term = request.term; if (term in cache) {

由于某些原因,我试图从jquery自动完成中获取所选的值,但无法获取id。我在这里看到了一个解决方案,但我的数据返回如下所示:如何保存id

我的数据

[{"id":3,"homename":"DCosta"}]
我的代码

$("#lastname").autocomplete({
     source: function (request, response) {
     var term = request.term;
     if (term in cache) {
         response(cache[term]);
        return;
     }
      $.ajax({
        type: 'POST',
        url: someurl,
        dataType: 'json',
        data: { "Name": request.term},
        success: function (result) {
              var Surnames = JSON.parse(result.data);
              cache[term] = ($.map(Surnames, function (item) {
               return {
                          label: item.homename,
                          //value: item.id  //<== if I do like this the id show in the text box which I do now want
                          value: item.homename //<== this shows correctly but the id is not accessable
                       }
                 }));
             response(cache[term]);
         },

         error: function (a, b, c) {
                       debugger;
         }
      });

      },
        select: function (event, ui) {
         self.Surname(ui.item.value); // save selected value
          console.log(self.Surname());  // shows ID if value: item.id or just the name

     },
           minLength: 2
});
$(“#lastname”).autocomplete({
来源:功能(请求、响应){
var term=request.term;
if(缓存中的术语){
响应(缓存[术语]);
返回;
}
$.ajax({
键入:“POST”,
url:someurl,
数据类型:“json”,
数据:{“Name”:request.term},
成功:功能(结果){
var姓氏=JSON.parse(result.data);
cache[term]=($.map)(姓氏、函数(项){
返回{
标签:item.homename,

//value:item.id/您可以添加一个隐藏字段来存储
id
(让我们给它一个id
myhiddenid
),并将自动完成字段的值设置为从函数返回的标签。添加
return false;
将取消事件的默认行为

默认操作是用选定项的值替换文本字段的值


当我添加此值时:item.id文本框显示id。我也添加了$('lastname').val(ui.item.label);并假设它将在文本框中显示标签值,但什么也没有发生。添加此myhiddenid.val(ui.item.value);如果您在屏幕上创建了一个隐藏的输入,请给UndefinedId(
)Ah missed将尝试并让您知道id仍然显示在文本框中我是否遗漏了任何内容。这是我所做的$('#lastname').val(ui.item.label);self.姓氏(ui.item.value);//保存所选值$('#myhiddenid').val(ui.item.value);@Adrian-我更新了答案。我还包括了一个
焦点:
事件,并指出了事件的默认行为。由于您希望显示标签而不是值,因此需要手动执行此操作(使用我们已经完成的
.val()
行),然后
返回false;
var myhiddenid = $("#myhiddenid");
var lastname = $("#lastname");

lastname.autocomplete({
     source: function (request, response) {
     var term = request.term;
     if (term in cache) {
         response(cache[term]);
        return;
     }
      $.ajax({
        type: 'POST',
        url: someurl,
        dataType: 'json',
        data: { "Name": request.term},
        success: function (result) {
              var Surnames = JSON.parse(result.data);
              cache[term] = ($.map(Surnames, function (item) {
               return {
                          label: item.homename,
                          value: item.id
                       }
                 }));
             response(cache[term]);
         },

         error: function (a, b, c) {
                       debugger;
         }
      });

      },
        focus: function (event, ui) {
         lastname.val(ui.item.label);
         myhiddenid.val(ui.item.value);
         return false;

     },
        select: function (event, ui) {
         lastname.val(ui.item.label);
         myhiddenid.val(ui.item.value);
         self.Surname(ui.item.value);
         console.log(self.Surname());
         return false;    
     },
           minLength: 2
});