gpt4 book ai didi

javascript - Angular 多选下拉列表和 lodash countby

转载 作者:行者123 更新时间:2023-11-29 21:03:39 25 4
gpt4 key购买 nike

我在这一方面有点空白,我似乎不太明白。

所以我有一个简单的 HTML select => option 元素,它是从后端填充的(虽然不是很相关)

我的问题是:

假设我有一个这样的预制对象:

{
keyName1: 450,
keyName2: 800,
keyName3: 300
}

我想做的是检查键名称是否与我的多选下拉列表中的选项值名称匹配(值来自数组,在选项上使用“ng-repeat”),如果选项值与键匹配,将数字值添加到某种增量变量中,这样我就可以显示找到的“keyNames”的总数。

例如 - 如果用户选择“keyName1”,则增量值总计为 450。如果用户选择“keyName1”和“keyName2”,则增量值总计为 1,250。

我不知道如何完成这项工作 - 现在它只读取下拉列表中的第一项。

这是执行此操作的代码:

_.forEach($scope.widget.instance.settings.serviceContractTypes, function (type) {
// if item in array matches what is selected in multi-select option
if(type === $('#contractType:selected').text().trim()) {
// do stuff
}
});

希望这一切都有意义,非常感谢您提供的任何方向...

(不一定非得用lodash,我只是习惯了)

最佳答案

jQuery 的 :selected 选择器只适用于 HTML 选项:“:selected 选择器适用于元素。它不适用于复选框或单选输入;请使用 :checked。” ( https://api.jquery.com/selected-selector/ )

你说“我有一个简单的 HTML select => option 元素,它是从后端填充的(虽然不是很相关)”

这可能是相关的。默认情况下,HTML 选项标签不支持多选;它必须明确地创建为一个选择倍数以支持它。您能否分享该选项的 HTML 代码,以明确这是一个问题还是一个转移注意力的问题?

此外,您能否回显 $scope.widget.instance.settings.serviceContractTypes 并共享以确保它实际上与选项文本中的可用内容相匹配?

附录 - 等等,我想我明白了!

$('#contractType:selected') 选择#contractType 中的所有选定选项并将它们连接起来。然后 $('#contractType:selected').text().trim() 将其 trim 为第一个单词,这只是第一个选择的选项。您应该执行 $('#contractType:selected').text().split("") 之类的操作,然后检查每种类型是否在结果列表中。

关于javascript - Angular 多选下拉列表和 lodash countby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com