0

我需要结合两个 OCG 过滤器。每个都可以单独工作,但如果我使用 Filter.Logical.OR 将它们组合起来,第一个只能工作。

var c_filter = new OpenLayers.Filter.Logical({ 
type: OpenLayers.Filter.Logical.OR, 
filters: [ 
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.EQUAL_TO, 
    matchCase:false, 
    property: 'id', 
    value:(document.getElementById("Text")).value     
    }),   
new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.LIKE, 
    matchCase:false, 
    property: 'name', 
    value: "*" +(document.getElementById("Text")).value + "*"   
    }),   
    ] 
}); 

我使用 openlayers 2.11

4

1 回答 1

1

尝试在第二个过滤器后删除逗号(,),它不应该在那里。

如果这没有帮助,我会尝试单独创建过滤器并将它们添加到“或”过滤器:

orFilter.filters.push(equalToFilter);
orFilter.filters.push(likeFilter);
于 2012-04-13T06:28:55.877 回答