HTML选择框,在您选择其中任何一个之前都将显示空白
HTML select box with blank to be displayed until you select any of them
想象一下下面的select HTML元素:
<select id="mySelect">
<option>Apple</option>
<option>Orange</option>
<option>Pineapple</option>
<option>Banana</option>
</select>
我希望在呈现这个DOM元素时,所选的值应该是空白的,而不是4个水果中的任何一个
我不想将空白作为另一个选项
有可能吗?
那就是我不想添加另一个项目,比如:
<select id="mySelect">
<option>Select an item </option>
<option>Apple</option>
<option>Orange</option>
<option>Pineapple</option>
<option>Banana</option>
</select>
或
<select id="mySelect">
<option></option>
<option>Apple</option>
<option>Orange</option>
<option>Pineapple</option>
<option>Banana</option>
</select>
这对来说很好
使用此HTML
<select id="mySelect">
<option>Apple</option>
<option>Orange</option>
<option>Pineapple</option>
<option>Banana</option>
</select>
在jQuery中使用
$('#mySelect').prop('selectedIndex', -1);
Javascript版本(在最新的chrome、firefox和IE 11上测试(
document.getElementById("mySelect").selectedIndex = -1
这将使下拉列表显示为空白,而不向列表添加额外的空白选项
使用纯HTML无法做到这一点。查看MDN和W3C官方HTML5.x夜间版本:
- https://developer.mozilla.org/en-US/docs/HTML/Element/select
- http://www.w3.org/html/wg/drafts/html/master/forms.html#the-select元素
您确实需要使用JavaScript并在"fake"选项上使用所选属性来切换它。
这些是<select>
元素属性(属性(的可用性:
全局
accesskey类内容可编辑上下文菜单目录可拖动dropzone隐藏id惰性拼写检查样式选项卡索引标题翻译
选择
自动对焦禁用形式多名称所需尺寸
更新
由于OP似乎允许JavaScript作为一种替代,但不允许jQuery,我添加了一个简单的JavaScript示例来准备一个空的(选定的(选项标记;
var fakeOpt = document.createElement('option');
var myList = document.getElementById('mySelect');
fakeOpt.selected = 'selected';
myList.insertBefore(fakeOpt, myList[0]);
// Listen to a change
myList.onchange = function(evt){
var clicked_option = myList.options[myList.selectedIndex].text;
if (clicked_option.trim() != '') {
console.log(clicked_option);
}
else {
console.log('Empty option selected');
}
};
这样就不需要在HTML代码中手工填写一个。
这是一个JSfiddle;http://jsfiddle.net/VjCbE/3/
我刚刚找到了一个非常漂亮的解决方案:
<pre>
<label for="hardness">Select the hardness</label> :
<select name="hardness" id="hardness">
<option selected="selected" disabled="disabled"></option>
<option value="3">Easy</option>
<option value="6">Medium</option>
<option value="10">Hard</option>
</select>
</pre>
现在选择Hardness.selectedIndex始终>0;
<option selected disabled value=''></option>
selected
使此选项成为默认选项。disabled
使此选项不可点击。
相关文章:
- 根据用户从下拉列表中的选择显示多个文本框
- 根据页面加载时的单选按钮选择显示某些字段
- 根据组合框选择显示特定数据
- 从项目列表Jquery中仅选择(显示:块)元素
- 根据用户复选框选择显示或隐藏下拉框
- 根据以前的选择显示选择选项
- 如何选择显示值而不是value选项
- 根据asp.net中下拉框中的选择显示文本框
- 根据单选按钮的选择显示HTML表单
- 缩小后的大图像上的Jcrop圆形选择显示预览选择区域中的全尺寸图像
- 按数字选择显示输入
- 基于下拉选择显示/隐藏控件mvc 4 razor c#
- 角度选择显示名称和项目
- 获取值并根据用户在 Javascript 上的选择显示
- 根据选择显示表格/表单
- 根据下拉选择显示文本
- 为什么选择显示显示值而不是标签
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- 基于多个单选按钮选择显示或隐藏元素
- 根据在选择框中所做的选择显示文本