如何在Materialize自动完成中使用动态数据?

格克特·奥兹列恩

我想使用按下键时从数据库中获取的数据。我试过了,但是没用。

$('#QTag').keyup(function (event) {
        let tags = [];
            $.ajax({
                type: 'POST',
                url: '/tryauto',
                data: {
                    'key': $(this).val()
                },
                success: function (dataDB) {
                    $.each(dataDB,function (index,value) {
                        tags.push(value);
                    });
                    $('input.autocomplete').autocomplete({
                        data: tags
                    });
                }
            });
    });

我也试过$('input.autocomplete').autocomplete('updateData',tags);了,但是也没用。

--

这是我的Laravel控制器

public function denemeauto(Request $request){
    $tags = $request->get('key');
    return DB::table('tags')->where('tag_title', 'LIKE', $tags . '%')->get();
}
tuffant21

好的,这是我初步尝试解决此问题。https://codepen.io/tuffant21/pen/KKpBapd我注意到的第一件事是您正在使用自动完成数组。请注意,自动完成功能需要对象,而不是数组。

其次,您需要在页面加载时初始化自动完成功能。然后使用来更新实例中的数据对象instance.options.data$('#QTag')。keyup()...必须位于$(document).ready()...函数内部。

最后,由于最初加载时没有任何数据,因此会延迟一段时间才能显示任何自动完成信息。您将需要输入文字,稍等片刻然后继续输入。使用这种当前方法,您将遇到该问题,每次按键时都会在后台下载数据并替换旧数据。

让我知道如果您需要更多说明或帮助,我还能如何澄清这一点!

// make sure you load jquery before materialize

$(document).ready(function(){
  $('input.autocomplete').autocomplete({
    data: {foo: 'bar'}
  });
  
  $('#QTag').keyup(function (event) {
    const instance = M.Autocomplete.getInstance(document.getElementById('QTag'));
    // autocomplete expects an object, not an array
    // let tags = []; before
    let tags = {}; // after

    // mimic api call
    setTimeout(() => {
      const dataDB = [
        {tag_id:'12',tag_title:'love',tag_link:'love'}
      ];

      $.each(dataDB, function (index, value) {
        // since it is an object, don't use push
        // tags.push(value); before
        tags[value.tag_title] = value.tag_id; // after
      });
      instance.options.data = tags;
    }, 500);
  });
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>

  <div class="row">
    <div class="col s12">
      <div class="row">
        <div class="input-field col s12">
          <input id="QTag" type="text" id="autocomplete-input" class="autocomplete">
          <label for="autocomplete-input">Autocomplete</label>
        </div>
      </div>
    </div>
  </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在动态数据源 (SQL) 中使用自动完成角材料

如何填充materialize.css芯片自动完成数据?

如何在自动完成材料ui中使用onchange?

如何在Vim中使用CTAG自动完成

如何在Saltstack中使用自动完成功能

如何在 Angular 中使用 MatOptgroup 来实现自动完成?

如何在 JQuery 自动完成中使用 XMLHttpRequest?

如何在Webform中使用自动完成的TextBox或ComboBox

如何在jQuery中动态自动完成

如何在Notepad ++中使变量自动完成?

如何在数据服务器中使用角度材料6自动完成功能

如何在JPA中使用动态JNDI数据源?

如何在Prolog中使用动态数据库?

如何在MongoDB中的Spring数据中使用动态模式?

如何在Django中使用动态数据保存模板

如何在Materialize表中使用复选框

如何在Angular中使用materialize-css

如何在Windows 10中使用键盘接受自动完成建议?

如何在oh-my-zsh中使用自动完成别名?

如何在 react-hook-from 中使用 material-ui 自动完成功能

如何在Android Studio中使用自动完成功能后回到原来的位置

如何在Firefox的搜索栏中使用Google自动完成功能?

如何在FormArray(反应性表单)中使用mat-autocomplete(角材料自动完成)

如何在JQuery UI自动完成中使用source:function()...和AJAX

如何在每个循环的 jQuery 中使用自动完成功能?

如何在导航栏中使用自动完成导入下拉列表

如何在Intellij IDEA中使用Junit删除自动代码完成

如何在jqGrid库Lib.Web.MVC中使用自动完成功能

如何在Excel中使用键盘快捷键忽略自动完成功能?