Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在一定条件下实现标记字段的自动对焦_Javascript_Extjs_Extjs6 - Fatal编程技术网

Javascript 如何在一定条件下实现标记字段的自动对焦

Javascript 如何在一定条件下实现标记字段的自动对焦,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,我有一个标记字段,我在其中加载一些值并发送到服务器。我想要的是,当再次重新加载该标记域组件时,这些值应该被自动选择。 目前,它们不是自动选择的,但如果我将焦点放在标记字段上,则这些值将显示为已选择 在某些情况下,自动聚焦的方式是什么。不总是这样 现在我只是显示数据,但这不是正确的方法,在IE中,这是不起作用的 下面是我目前正在做的事情 if(myField.xtype == "tagfield"){ myField.xtype.setValue(myValue);

我有一个标记字段,我在其中加载一些值并发送到服务器。我想要的是,当再次重新加载该标记域组件时,这些值应该被自动选择。 目前,它们不是自动选择的,但如果我将焦点放在标记字段上,则这些值将显示为已选择

在某些情况下,自动聚焦的方式是什么。不总是这样

现在我只是显示数据,但这不是正确的方法,在IE中,这是不起作用的

下面是我目前正在做的事情

if(myField.xtype == "tagfield"){
        myField.xtype.setValue(myValue);
        myField.xtype.inputEl.set({'placeholder':myValue});
    }
我想要的是

if(myField.xtype == "tagfield"){
        // Automatic Focus  OR
        // Someway by which I can set the value
    }

我假设您的
tagfield
config对象如下所示

var store =  Ext.create('Ext.data.ArrayStore',{ 
fields: [
    'abbr',
    'state',
    'description',
    'country'
],
data: [
    [0, 'AL', 'Alabama', 'The Heart of Dixie'],
    [1, 'AK', 'Alaska', 'The Land of the Midnight Sun'],
    [2, 'AZ', 'Arizona', 'The Grand Canyon State'],
    [3, 'AR', 'Arkansas', 'The Natural State'],
    [4, 'CA', 'California', 'The Golden State'],
    [5, 'CO', 'Colorado', 'The Mountain State'],
    [6, 'CT', 'Connecticut', 'The Constitution State'],
    [7, 'DE', 'Delaware', 'The First State'],
    [8, 'DC', 'District of Columbia', "The Nation's Capital"],
    [9, 'FL', 'Florida', 'The Sunshine State'],
    [10, 'GA', 'Georgia', 'The Peach State'],
    [11, 'HI', 'Hawaii', 'The Aloha State'],
    [12, 'ID', 'Idaho', 'Famous Potatoes']
] 
});

{
        xtype: 'tagfield',
        fieldLabel: 'Select a state',
        store: store,
        reference: 'states',
        displayField: 'state',
        valueField: 'abbr',
        filterPickList: true,
        queryMode: 'local',
}
通过此配置,如果您在标记字段中选择阿拉巴马州、阿拉斯加州、亚利桑那州等州,则您将获得如下值
['AL'、'AK'、'AZ']
,因为在标记字段配置中,您已设置了
值字段:'abbr'
,这些值将转到服务器进行保存

重新加载后,如果要选择这些值,则必须按原样给出这三个值。像

if(myField.xtype == "tagfield"){//tagfield is in lower case 
         myField.setValue(['AL','AK','AZ']); // myField.setValue(myValue);
}
如果您仍然希望聚焦同一字段,并且如果您在聚焦上加载tagfield的存储,那么您可以使用标记字段的
focus
方法

if(myField.xtype == "tagfield"){ //tagfield is in lower case 
       myField.focus(true,true,function(){
       myField.getStore().load({
          callback: function(records, operation, success) {
              myField.setValue(['AL','AK','AZ']);//myField.setValue(myValue);                   
          }
       });
    }); 
}
希望这有帮助

如果您已将标记字段用作小部件,则可以在
widgetcolumn
上使用
onwidgetatch
config,并可以在其上指定函数


请参考。

你的意思是你正在经历与之相同的事情吗?@Alexander是的,类似的事情。当我单击焦点时,我的值将显示。所以我只是在想,一旦我加载了,我还能集中精力吗。我也在使用我的代码,但占位符在IE中不起作用。我签入了文档,有一个叫做
preFocus
的东西来避免使用
placeholder
,但我不确定如何使用它。你能帮助我如何使用
preFocus
或类似的东西吗?我已经检查了tagfield的源代码。请尝试配置选项
autolodonvalue:true
是否适合您。它在bug报告中的小提琴中工作。
autolodonvalue:true
仅在存储加载后工作。但在我的例子中,我只是在标记域组件聚焦后才开始加载存储。不,
autolodonvalue
将在设置值时强制加载存储。至少在6.2.1中-您使用哪个版本?答案为Ok+1。但是,这里我的
tagfield
是一个小部件列,只有在tagfield得到关注后,存储才会加载。好吧,让我试试你答案的第二部分。我不能在没有集中注意力的情况下设定商店价值。所以我想要自动聚焦。你有小提琴吗?我会试着制作一把小提琴。