我有一个包含以下字段的JsonStore:
id
date
time
type
我有一个表单收集三个字段(date
,time
,type
)并将新记录插入商店(我单独保存商店)。我想检查商店中是否已存在具有相同字段值组合的记录,以避免重复输入。
我已设法检查另一个商店中的重复ID,如下所示:
find = DepartmentMemberStore.find('member_id', value_from_form);
if (find != -1) {
// popup error window
return;
} else {
// add new record to store
}
我不知道如何检查商店以查看多个字段值是否匹配。
答案 0 :(得分:16)
我已经使用Store的findBy( Function fn, [Object scope], [Number startIndex] )
来解决这种情况。为存储中的每条记录调用函数fn
,并将当前记录及其相应的id传递给函数。因此,您可以使用当前记录的字段与每个表单字段进行比较。
以下是您的情况示例:
var recordIndex = DepartmentMemberStore.findBy(
function(record, id){
if(record.get('date') === date_from_form &&
record.get('time') === time_from_form &&
record.get('type') === type_from_form){
return true; // a record with this data exists
}
return false; // there is no record in the store with this data
}
);
if(recordIndex != -1){
alert("We have a duplicate, abort!");
}