首页 > 解决方案 > 在制表符单元格中单击输入键时选择标签

问题描述

我有一个js fiddle来展示我面临的问题。Tabulator 'email' 列的 freetext 设置为 true 以允许用户将单元格的值设置为自由文本条目,如下所示:

editorParams:{
        values:{
          "steve@boberson.com":"steve",
          "bob@jimmerson.com":"bob",
          "jim@stevenson.com":"jim",
          "harvy@david.com":"Harvy",
          "ken@thompson.com":"Ken",
          "denny@beckham.com":"Denny"
                 }, 
      freetext:true,
      searchFunc:function(term, values){ 
      console.log("term and val "+term +" \n"+values);
            var matchedEntries = {};
            var matchFound = false;
            for(var key in values) {
                if(key.includes(term)){
                  matchFound = true;
                  matchedEntries[key] = values[key];
                }
             }         
            if(matchFound){
                  return matchedEntries;
            }
            else{
               return {term: term};
            }
         } 
       }}
  1. 从显示的选择器列表中选择一个值,例如 steve,值为“steve@bobberson.com”。

  2. 然后在选择值后,单击相同的制表符单元格,显示的值突然变为标签。当用户现在单击回车键时,选择的是标签而不是值,即。将显示 steve 而不是 steve@bobberson.com

如果这不是错误,我如何确保在单击 Enter 后值 steve@bobberson.com 保持选中状态。这是因为该列的 editorParams 中的 freetext 选项设置为 true 附加了一个显示问题的 gif在此处输入图像描述

标签: tabulator

解决方案


那不是错误,

启用自由文本后,用户可以在该字段中输入他们喜欢的任何文本,并将被保存,这正是示例中发生的情况

如果他们再次从列表中选择电子邮件地址,则它被正确保存。

这是一个非此即彼的场景,您可以限制用户从列表中选择特定值,或者您可以允许他们自由文本,在这种情况下任何事情都会发生。

如果您想要不同的行为,那么您始终可以构建一个以您想要的方式工作的自定义编辑器。查看自定义编辑器文档以获取更多信息


推荐阅读