数据和HTML下拉列表
Data and HTML Dropdown
所以我尝试使用Javascript/Jquery填充HTML下拉列表。我希望每个<option>
标签都有一些相关的数据,比如searchPurpose、searchTime、startDate、endDate。然后我有两个问题-
- 我应该如何通过数据标记或其他方式关联这些数据
- 一旦我的用户点击了某个选项,我该如何访问这些数据
感谢
使用HTML5,data-*
属性无疑是不错的选择。假设您有以下内容:
<select id="ddl">
<option data-start-date="25-08-2012" value="1">A</option>
<option data-start-date="25-08-2013" value="1">B</option>
</select>
要使用简单的JavaScript访问它们的价值,请使用:
selectedOption.getAttribute("data-start-date");
使用jQuery使用data()
:
$("#ddl").on('change', function () {
var selectedOption = this.options[this.selectedIndex];
alert($(selectedOption).data("start-date"));
});
演示。DEMO(jQuery)。
您在使用jQuery吗?如果是这样,您可能需要使用内置的数据模块。如果没有,请使用数据标记。我建议将所有数据放在一个数据标签中。即
data="searchPurpose: thing, searchTime: sometime"
并像这样分离:
function data(elem) {
var data = {};
var a = elem.getAttribute('data').split(',');
var i = 0;
while(i < a.length){
data[a[i].split(':')[0]] = a[i].split(':')[1];
i++;
}
return data;
}
因此:
data() returns an object literal like this: { searchPurpose: 'thing', searchTime: 'sometime' }
有很多方法可以将数据与option
标记关联起来。我脑海中浮现的一些想法:
- 使用隐藏输入:
<option id="option1">Option 1</option><input type="hidden" id="option1data" value="option1 data here" />
- 使用
data-
属性(并非所有浏览器都支持):<option id="option1" data-searchPurpose="searchPurpose">Option 1</option>
- 如果您使用的是jQuery,您可以使用它的.data()方法:
$('#option1').data('searchPurpose', 'data...');
至于访问数据,这取决于你对下拉列表做了什么。如果它们是以表单形式提交的,您可以使用一些 否则,使用Javascript访问/修改数据应该非常简单。onSubmit
JavaScripta)返回false,然后b)
相关文章:
- javascript和html图像下拉列表
- 如何在 HTML 下拉列表中制作锚标记
- 数据和HTML下拉列表
- 在html中显示任一下拉列表
- 在Moqui中,如何在html.ftl中加载数据库表数据作为下拉列表
- 需要在 html 中使用两个下拉列表来显示不同的 json 值
- HTML 表单字段根据从下拉列表中选择的选项显示/隐藏
- HTML 下拉列表所选值
- 只有在HTML表单中选择了某个下拉列表时,才需要字段
- html形式的下拉列表
- 有角度的自动建议文本排版和html ul li下拉列表
- 如何根据HTML下拉列表中的数量选择来计算价格
- 从php中的mysql中复制带有嵌入式下拉列表的html表单javascript
- JS下拉列表没有'不能在复制的HTML源中工作
- 从 html.append 追加的 html 下拉列表中获取返回值
- 在选择其他下拉列表html和javascript araray的基础上,填充3个连续的下拉列表
- 使用 SQL 信息更新选择下拉列表 (HTML)
- 层次结构和多选项下拉列表(HTML),并在项目之间导航(子节点)
- 显示选项与复选框下拉列表- HTML/JAVASCRIPT
- Chrome中的AJAX下拉列表(HTML Select)