我正在与kendogrid一起工作很多,有一个带有下拉菜单的kendogrid。有四行,我需要确认没有任何行选择与其他任何行相同的值。我正在这样做:
var pj = 0; var ga = 0; var gt = 0; var empty = 0;
var existingValues = _.filter($("#configSettingsGrid").data().kendoGrid.dataSource.data(), function (config) {
if (config.Enabled === true) {
if (config.selectedJackpotType === "Progressive jackpot") {
pj++
}
if (config.selectedJackpotType === "Guaranteed amount") {
ga++
}
if (config.selectedJackpotType === "Guaranteed time") {
gt++
}
if (config.selectedJackpotType === "") {
empty++
}
}
});
if (pj > 1 || ga > 1 || gt > 1 || empty > 0) {
return false;
}
之所以有效,是因为U知道用户可以在这些值之间进行选择,但是我真的很想拥有一个更动态的解决方案,如果将来使用新的可选值类型,验证也可以处理。任何人都有比较这些值的好方法。
答案 0 :(得分:0)
1
,则返回false
,否则返回true
。在下面的代码中,我假设一切都在函数或闭包内部。 代码:
var hash = {};
_.filter($("#configSettingsGrid").data().kendoGrid.dataSource.data(), function (config) {
if (config.Enabled === true) {
hash[config.selectedJackpotType] = hash[config.selectedJackpotType] === undefined ? 1 : hash[config.selectedJackpotType] + 1;
}
});
var selected_options = Object.keys(hash);
for(let each_option in selected_options){
if(hash[selected_options[each_option]] > 1){
return false;
}
}
return true;