再会。请先看看我的评论。

我的JS

$(document).ready(function(){
    $("#outlet").typeahead({
         source: function(query, process) {

                $.ajax({
                 url: '<?=base_url();?>graph/outletlists',
                 data: {outlets:$("#outlet").val()},
                 type: 'POST',
                 dataType: 'JSON',
                 success: function(data) {
                          process(data);
                          console.log(data);
                        }
                    });
         },
        minLength: 2
    });
});

我的 Controller
function outletlists()
    {
        extract(populateform());
        $hasil = $this->modelmodel->showdata("SELECT Outlet from transaksi where outlet like '%".$outlets."%' group by Outlet");
        echo json_encode($hasil);
    }

和我的表格
 <div class="form-group">
         <label class="col-sm-3 control-label">Outlet</label>
              <div class="col-sm-5">
                   <input type="search" id="outlet" class="form-control" placeholder="Search..." data-provide="typeahead" />
              </div>
   </div>

所以,我正在使用Bootstrap3-typeahead。从上面的脚本中我遇到了这个错误

console.log(data)我已经有我想要的结果。所以我的问题是我看不到任何建议,然后我从firebug收到此错误
return ~it.toLowerCase().indexOf(this.query.toLowerCase());

这是我输入AR时得到的
[{"Outlet":"K-AR3"},{"Outlet":"K-AR4"},{"Outlet":"K-ARN2"},{"Outlet":"K-ARN3"}]

任何帮助将不胜感激,对不起,我的英语不好。

我尝试使其像http://twitter.github.io/typeahead.js/examples/中的示例一样
var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
  'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
  'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
  'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
  'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
  'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
  'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
  'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
  'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
];
$(document).ready(function() {
    $("#outlet").typeahead({
        autoSelect: true,
        minLength: 2,
        delay: 400,
        source: states
    });
});

它起作用。
firebug的结果



我尝试将bootstrap3-typeahead.js更改为bootstrap3-typeahead.min.js结束,我的错误变成了这样

最佳答案

正如我从您的console.log()中看到的那样。你明白了。

[{"Outlet":"K-AR3"},{"Outlet":"K-AR4"},{"Outlet":"K-ARN2"},{"Outlet":"K-ARN3"}]

你只需要
[{"K-AR3"},{"K-AR4"},{"K-ARN2"},{"K-ARN3"}]

所以尝试将您的 Controller 更改为
function outletlists()
    {
        extract(populateform());
        $hasil = $this->modelmodel->showdata("SELECT Outlet from transaksi where outlet like '%".$outlets."%'  group by Outlet");
        $data = array();
        foreach ($hasil as $hsl)
            {
                $data[] = $hsl->Outlet;
            }
        echo json_encode($data);
    }

关于jquery - Typeahead TypeError : it. toLowerCase不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38320293/

10-13 01:44