Extjs - 检查字段是否不相同

时间:2011-02-21 19:17:08

标签: javascript extjs

我在ExtJS中有一个表单,带有2个带有语言列表的下拉框。它们都具有相同的值,通过JSON数据存储区从数据库表加载。

它是“From”语言和“To”语言。

现在我要做的是从“收件人”下拉列表中的“发件人”下拉列表中过滤掉语言,以确保在两个下拉列表中都没有选择相同的语言。

希望这是有道理的:)

/淑娜

2 个答案:

答案 0 :(得分:1)

您将需要两个具有相同内容的独立商店。当从组合框A(“从”组合框)中选择一个值时,从其他组合框(“组合”组合框)中存储该值。反之亦然。如果配置正确,组合框应该几乎立即反映变化。

示例引自ExtJS API docs以显示如何过滤商店的内容:

store.filter([
{
property     : 'name',
value        : 'Ed',
anyMatch     : true, //optional, defaults to true
caseSensitive: true  //optional, defaults to true
},
//filter functions can also be passed
{
fn   : function(record) {
return record.get('age') == 24
},
scope: this
}
]);

您可能需要为过滤器使用一个函数,因为您想要过滤掉等于某个值的值。

答案 1 :(得分:1)

所以请改用filterBy函数,并定义自己的函数,除了特定的记录之外,每个记录都会返回true:

onBlur: function(){
    ds_language_to.filterBy(function(record) {
        if (record.get('language') != fromCombo.getValue())
            return true;
    });
}

替换相应的代码以获取在from combo中选择的值。