You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selectize render方法未调用,选项无法渲染问题求助

解决selectize.js远程搜索无选项、render不触发的问题

我帮你排查下代码里的几个关键问题,这应该就是导致render没输出、选项不生成的原因:

1. 字段名不匹配+拼写错误

你的配置里指定的字段和返回数据的字段完全对不上,而且还有拼写错误:

  • 你设置了valueField: "name"、searchField: 'name',但返回的用户数据字段是user_name,selectize找不到对应的字段,自然无法识别选项;
  • 配置里的labelfield是拼写错误,正确的应该是labelField(首字母大写的F),这个错误会导致选项的标签无法正常渲染。

2. render函数缺少返回值

当前的render.option函数只做了console.log(item),但selectize要求这个函数必须返回一个HTML字符串来渲染选项内容。没有返回值的话,就算数据加载成功,也不会生成可见的选项,同时render函数的执行时机也会受影响。

修正后的完整代码

$(function () {
  $('#workers_paid').selectize({
    placeholder: "No worker Is selected",
    valueField: "user_name", // 改为数据里的字段名
    labelField : "user_name", // 修正拼写+匹配字段
    searchField: 'user_name', // 匹配字段名
    render: {
      option: function (item, escape) {
        console.log(item); // 现在就能正常打印了
        // 返回渲染选项的HTML,escape防止XSS
        return `<div>${escape(item.user_name)}</div>`;
      }
    },
    onLoad : function (data) {
      console.log('数据加载完成', data);
    },
    load: function (query, callback) {
      // 可以去掉alert,避免干扰交互
      let data = JSON.parse('{"users" : [{"user_name": "Humza"},{"user_name": "Humza"},{"user_name": "Humza"},{"user_name": "Humza"},{"user_name": "Humza"},{"user_name": "Humza"}]}');
      callback(data.users);
    }
  });
});

验证效果

修改后,当你触发搜索(点击选择框或者输入内容),load方法会返回数据,render函数会被调用并打印item,同时选择框里会生成对应的选项。

内容的提问来源于stack exchange,提问作者Humza Malik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:39:47