在标记字段值中查找特定单词
Find certain words in tagfield values
Extjs 5.
我的应用程序有一个带有标签字段的表单,其中包含 200 多个项目的列表。
这些项目中大约有 30 个包含单词 'another thing'(例如)。
每次我 select 这些项目之一应该被动态添加到文本区域字段的表单中。
我尝试了几种解决方案,但都没有成功,包括使用 match()、indexOf() 和 search() javascript 方法。
onSelect : function (combo, records, eOpts) {
var records = combo.getValue();
for (var i = 0, count = records.length; i < count; i++) {
while( records[i] == '%another thing%'){ //I know this is not the right way; Just to show what I'm looking for
console.log('OK'); //logic...
return;
}
}
},
我将不胜感激。
提前致谢。
试试这个代码:
onSelect: function (field, records, opts) {
// records parameter already contains all selected tags
var found = Ext.Array.filter(records, function(r) {
// conditions go here
return r.get('text') === 'aardvark' ||
r.get('text') === 'aardwolf';
});
// check if we found anything
if (found.length > 0) {
console.log(found);
}
}
Fiddle: http://jsfiddle.net/wsm6an0n/2/
如果您想像搜索一样使用通配符,请使用 indexOf
而不是比较:
onSelect: function (field, records, opts) {
// records parameter already contains all selected tags
var found = Ext.Array.filter(records, function(r) {
// conditions go here
return r.get('text').indexOf('aa') !== -1; // LIKE '%aa%'
});
// check if we found anything
if (found.length > 0) {
console.log(found);
}
}
Fiddle: http://jsfiddle.net/rq90eLh4/1/
Extjs 5.
我的应用程序有一个带有标签字段的表单,其中包含 200 多个项目的列表。
这些项目中大约有 30 个包含单词 'another thing'(例如)。 每次我 select 这些项目之一应该被动态添加到文本区域字段的表单中。
我尝试了几种解决方案,但都没有成功,包括使用 match()、indexOf() 和 search() javascript 方法。
onSelect : function (combo, records, eOpts) {
var records = combo.getValue();
for (var i = 0, count = records.length; i < count; i++) {
while( records[i] == '%another thing%'){ //I know this is not the right way; Just to show what I'm looking for
console.log('OK'); //logic...
return;
}
}
},
我将不胜感激。
提前致谢。
试试这个代码:
onSelect: function (field, records, opts) {
// records parameter already contains all selected tags
var found = Ext.Array.filter(records, function(r) {
// conditions go here
return r.get('text') === 'aardvark' ||
r.get('text') === 'aardwolf';
});
// check if we found anything
if (found.length > 0) {
console.log(found);
}
}
Fiddle: http://jsfiddle.net/wsm6an0n/2/
如果您想像搜索一样使用通配符,请使用 indexOf
而不是比较:
onSelect: function (field, records, opts) {
// records parameter already contains all selected tags
var found = Ext.Array.filter(records, function(r) {
// conditions go here
return r.get('text').indexOf('aa') !== -1; // LIKE '%aa%'
});
// check if we found anything
if (found.length > 0) {
console.log(found);
}
}
Fiddle: http://jsfiddle.net/rq90eLh4/1/