【问题标题】:jquery autocomplete based on 2 input fields using ajaxjquery自动完成基于使用ajax的2个输入字段
【发布时间】:2018-04-21 15:00:39
【问题描述】:

我有一个带有 2 个输入字段的表单。我想使用输入 1 作为过滤器在输入 2 上实现自动完成。所以我需要将两个参数都传递给我的 cgi 脚本。我这样做有问题。我可以单独通过它们,但不能同时通过。这是我尝试过的:

function fillbox2(){                                                          

$('#input2').autocomplete({                                              
      source: function(request, response ){                                                               
      var frmStr =  {input1:$('#input1').val(),input2:$('#input2').val()};                                                                     
      $.ajax({                                                            
      url: './cgi_temp2.cgi',                                             
      dataType: 'json',                                                   
      data:{frmStr:request.term},                                      
      contentType: "application/json; charset=utf-8",                     

          success: function (data) {                                      
               response ($.map( data.matches, function(item){             
                           return {                                       
                              value: item.info2,                    

                           }                                              
                       }));                                               
              }                                                           
          });                                                             
      },                                                                  

          minLength: 2,                                                   
          select: function(event, ui){                                    
          $("#input2).val(ui.item.value);                             
          return false;                                                   
          }                                                               
  });                                                                     

}       

问题出在哪里?是来自我的ajax调用中的“数据:”还是“成功:”?

【问题讨论】:

  • 这个{frmStr:request.term} 看起来不正确,因为您有一个frmStr 变量但没有request。也许应该是{request:{term:frmStr}

标签: javascript jquery jquery-ui autocomplete


【解决方案1】:

正如我所见,您将输入中的数据保存在 "frmStr" 但是在你的ajax请求中,你这样做了 data:{frmStr:request.term}, 这意味着您使用变量 "frmStr" 作为数据和后端的键您将拥有frmStr 作为键。 您在 ajax 中的数据应该是这样的

var frmStr =  {
    input1:$('#input1').val(),
    input2:$('#input2').val(),
    requestTerm: request.term
};

然后在ajax中

data:{data: frmStr},

应该可以将数据发送到后端

【讨论】:

  • requestTerm 呢?它在哪里适合ajax调用?它仍然在某处阻塞..
  • requestTerm 在这种情况下只是一个键,它将保存来自您的 request.term 的数据(就像 input1 和 input2) checkout frmStr 变量
  • 我明白了.. 我需要更新成功吗:在 ajax 中。还有一个问题。自动完成不会启动。但我也没有看到错误
  • 只检查ajax console.log(data)中返回成功函数的内容;
  • 仍然没有运气.. 但还是那么接近!!
猜你喜欢
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
相关资源
最近更新 更多