Dojo 移动和重新定位HTML元素
下面的代码工作正常。但当显示下拉列表时,它不应覆盖其下方名为get value和get displayed value的按钮元素。相反,当显示下拉列表时,按钮应向下移动,并且在选择特定项目后,按钮应回到原始位置Dojo 移动和重新定位HTML元素,dojo,Dojo,下面的代码工作正常。但当显示下拉列表时,它不应覆盖其下方名为get value和get displayed value的按钮元素。相反,当显示下拉列表时,按钮应向下移动,并且在选择特定项目后,按钮应回到原始位置 <html > <head> <link rel="stylesheet" href="dijit/themes/claro/claro.css"> <script>dojoConfig = {parseOnLoad: true}&
<html >
<head>
<link rel="stylesheet" href="dijit/themes/claro/claro.css">
<script>dojoConfig = {parseOnLoad: true}</script>
<script src='dojo/dojo.js'></script>
<script>
require([
"dojo/store/Memory", "dijit/form/FilteringSelect", "dojo/domReady!"
], function(Memory, FilteringSelect){
var stateStore = new Memory({
data: [
{name:"Alabama", id:"AL"},
{name:"Alaska", id:"AK"},
{name:"American Samoa", id:"AS"},
{name:"Arizona", id:"AZ"},
{name:"Arkansas", id:"AR"},
{name:"Armed Forces Europe", id:"AE"},
{name:"Armed Forces Pacific", id:"AP"},
{name:"Armed Forces the Americas", id:"AA"},
{name:"California", id:"CA"},
{name:"Colorado", id:"CO"},
{name:"Connecticut", id:"CT"},
{name:"Delaware", id:"DE"}
]
});
var filteringSelect = new FilteringSelect({
id: "stateSelect",
name: "state",
value: "CA",
store: stateStore,
searchAttr: "name"
}, "stateSelect");
var filteringSelect = new FilteringSelect({
id: "stateSelect1",
name: "state",
value: "CA",
store: stateStore,
searchAttr: "name"
}, "stateSelect1");
});
</script>
</head>
<body class="claro">
<input id="stateSelect"><br/>
<br/>
<br/>
<input id="stateSelect1">
<input id="stateSelect">
<p>
<button onclick="alert(dijit.byId('stateSelect').get('value'))">Get value</button>
<button onclick="alert(dijit.byId('stateSelect').get('displayedValue'))">Get displayed value</button>
</p>
</body>
</html>
dojoConfig={parseOnLoad:true}
要求([
“dojo/store/Memory”、“dijit/form/FilteringSelect”、“dojo/domReady!”
],功能(存储器,过滤器选择){
var stateStore=新内存({
数据:[
{姓名:“阿拉巴马州”,id:“AL”},
{姓名:“阿拉斯加”,id:“AK”},
{名称:“美属萨摩亚”,id:“AS”},
{姓名:“亚利桑那州”,id:“亚利桑那州”},
{姓名:“阿肯色州”,id:“AR”},
{名称:“欧洲武装部队”,id:“AE”},
{姓名:“太平洋武装部队”,id:“AP”},
{姓名:“美洲武装部队”,id:“AA”},
{姓名:“加利福尼亚”,id:“CA”},
{姓名:“科罗拉多”,id:“CO”},
{姓名:“康涅狄格州”,id:“CT”},
{姓名:“特拉华州”,id:“德”}
]
});
var filteringSelect=新filteringSelect({
id:“stateSelect”,
名称:“国家”,
值:“CA”,
商店:stateStore,
searchAttr:“名称”
},“国家选择”);
var filteringSelect=新filteringSelect({
id:“stateSelect1”,
名称:“国家”,
值:“CA”,
商店:stateStore,
searchAttr:“名称”
}“州选择1”);
});
获得价值
获取显示值
我不确定您所说的“不应该覆盖按钮元素”是什么意思,因为它肯定应该覆盖按钮元素。下拉菜单应该是一个覆盖,它不是页面的一部分。您是否希望它成为页面的一部分是不同的
使用筛选选择无法轻松完成此操作。筛选选择将用于保存选项的div追加到页面底部。您不能在页面的正常流程中显示它。您必须创建一个自定义小部件,该小部件将其选项附加到容器中,直接位于选择输入的下方
但我不知道你这么做想解决什么问题。我的建议是保持现状,除非你有很好的理由改变它。下拉菜单是GUI中根深蒂固的组件,因此不建议更改其行为
编辑:
如果要限制下拉列表的高度。设置过滤器选择的“最大高度”
var filteringSelect = new FilteringSelect({
id: "stateSelect",
name: "state",
value: "CA",
store: stateStore,
searchAttr: "name",
maxHeight: 40
}, "stateSelect");
这是一把小提琴 好的,Matt,可以在过滤中添加滚动条吗select@user2956454,我已编辑我的答案以限制下拉列表的大小。如果需要,将自动添加滚动条。