ExtJs select component by itemId 以字符串开头

ExtJs select component by itemId starting with a string

使用 Ext Js 4.1。

我在面板中有多个带有 id 和 itemId 的复选框:'chA104'、'chA204'、'chB111' 等。 我想获取所有以 id(或 itemId)= 'chA' 开头的复选框以禁用它们。

怎么做? 尝试使用这个:

this.query('*[id^=chA]');

但得到一个包含多个元素的数组:table、td、input 等。 这样做时:

Ext.query('input[id^=chA]')[0]

我得到一个 html 输入元素。但是在尝试做时:

Ext.query('input[id^=chA]')[0].disable();
Ext.query('input[id^=chA]')[0].setDisabled(true);

我收到一个错误。

那么如何获取所有复选框,以字符串 ID(或 itemId)开头并使它们成为 enabled/disabled?

如果您使用的是 extjs 复选框,您可以这样做:

//enable/disable
Ext.ComponentQuery.query('checkboxfield{id.search("chA")!=-1}')[0].disable(); 
//check/uncheck                           
Ext.ComponentQuery.query('checkboxfield{id.search("chA")!=-1}')[0].setValue(true);

如果是纯的 html 只需使用:

//enable/disable
Ext.query('input[id^=chA]')[0].disabled = true;
//check/Uncheck
Ext.query('input[id^=chA]')[0].checked = true;