单击制表符单元格中的Enter键即可选择标签

问题描述

我有一个js fiddle来说明我面临的问题。 制表符的“电子邮件”列的自由文本设置为true,以允许用户将单元格的值设置为自由文本条目,如下所示:

@H_404_3@editorParams:{
        values:{
          "[email protected]":"steve","[email protected]":"bob","[email protected]":"jim","[email protected]":"Harvy","[email protected]":"Ken","[email protected]":"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,值为“ [email protected]”。

  2. 然后,在选择值之后,单击同一制表符单元,显示的值突然变为标签。当用户单击Enter键时,将选择标签而不是值。将显示steve而不是[email protected]

如果这不是错误,那么如何确保在单击enter后仍然选择值[email protected]。这是因为该列的editorParams中的freetext选项设置为true 随附显示问题的gif

enter image description here

解决方法

那不是错误,

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

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

这是一个/或一个方案,您可以限制用户从列表中选择特定值,或者在任何情况下都可以允许他们使用自由文本。

如果您想要不同的行为,那么您始终可以构建一个可按所需方式运行的自定义编辑器。检出Custom Editor Documentation以获取更多信息