gpt4 book ai didi

javascript - 如何使 dijit.form.Select 与具有相同值的多个项目一起使用?

转载 作者:行者123 更新时间:2023-11-30 06:41:43 26 4
gpt4 key购买 nike

我有一个 dijit.form.Select 小部件,我用它来将标签映射到值。有些标签需要具有相同的值,但我需要能够在进行选择时区分标签。现在小部件的选项看起来像这样:

[
{
label: "A",
value: "1",
},
{
label: "B",
value: "2"
},
{
label: "C",
value: "2"
}
],

这样做是因为表单的处理需要知道“B”和“C”实际上都表示 2,但是当选择“B”与“C”时,我需要在另一个控件上执行一些不同的逻辑。我发现我可以在 onChange 事件处理程序中 get("displayedValue") 来获取“displayed”标签,但它总是首先返回 与当前值 (2) 相匹配的选项 (B) 不一定是用户选择的值

那么,当多个标签需要评估相同的值同时仍然能够区分标签时,我该如何处理这种情况?

最佳答案

只需使用 dijit/form/Select 小部件 focusNode.textcontent 属性:

function disaplySelected() {
document.getElementById("labelContainer").innerHTML = window.sel.focusNode.textContent;
document.getElementById("valueContainer").innerHTML = window.sel.value;
}

require(["dijit/form/Select", "dojo/_base/window", "dojo/domReady!"], function(Select, win) {
window.sel = new Select({
name: "select2",
options: [
{label: "A",value: "1"},
{label: "B",value: "2"},
{label: "C",value: "2"}
],
});
window.sel.placeAt(win.body(), "first").startup();
});
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.1/dojo/dojo.js" data-dojo-config="async: true"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.1/dijit/themes/claro/claro.css">
</head>

<body class="claro">
<p>
<button onclick="disaplySelected()">Display selected label</button>
<br/>Selected item label: <span id="labelContainer"></span>
<br/>Selected item value: <span id="valueContainer"></span>
</p>
</body>
</html>

关于javascript - 如何使 dijit.form.Select 与具有相同值的多个项目一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706454/

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