如何始终显示HTML选择中的第一个选项?

问题描述:

我有一个HTML选择,我想要实现的东西,当我从选择菜单中选择任何选项时,它不应该显示那些选中的选项,而是必须始终显示第一个选项,无论用户从选项中选择内。 下面是DIV我的CSS代码,并选择:如何始终显示HTML选择中的第一个选项?

.styled select { 
     background: transparent; 
     width: 140px; 
     font-size: 16px; 
     border: 1px solid #ccc; 
     height: 34px; 
    } 

    .styled { 
     width: 40px; 
     height: 34px; 
     border: 1px solid #46b8da; 
     border-radius: 3px; 
     overflow: hidden; 
     background-color: #5bc0de; 
    } 

    <div class="styled"> 
    <select id="drpInsertMerge" onchange="drpChanged(this);"> 
      <option selected>{}</option> 
      <option value="Phone Number">Phone Number</option> 
      <option value="Email Address">Email Address</option> 
      <option value="Given Name">Given Name</option> 
      <option value="Family Name">Family Name</option> 
      <option value="Display Name">Display Name</option> 
     </select> 
    </div> 

这里,从上面的代码,你可以看到下拉框或DIV实际上比选择菜单较小(这是在我的情况需要)这与第一个选项{}匹配,但如果我从下面选择了其他任何选项,那么大多数文本都会被剪切掉,这是不好看的,这就是为什么我需要您的帮助或建议以了解如何实现这一点。谢谢。

+0

这是a)不容易实现,b)根本不推荐。你试图以完全错误的方式解决问题。改为调整你的布局。 – connexo

+0

我认为要实现你想要的,你需要创建另一个代表下拉列表的元素。然后隐藏您的原始选项元素 – Kebeng

+0

切割选择的原因是溢出:隐藏;为周围的div。你可以省略这个吗?您可以将.styled div设置为40px,将select选为100% –

你打算设计的方式是错误的。这可能是一种增加CSS样式类宽度的方法。

.styled select { 
    background: transparent; 
    width: 500px; 
    font-size: 16px; 
    border: 1px solid #ccc; 
    height: 34px; 
} 

.styled { 
    width: 300px; 
    height: 34px; 
    border: 1px solid #46b8da; 
    border-radius: 3px; 
    overflow: hidden; 
    background-color: #5bc0de; 
} 

    <div class="styled"> 
<select id="drpInsertMerge" onchange="drpChanged(this);"> 
     <option selected>{}</option> 
     <option value="Phone Number">Phone Number</option> 
     <option value="Email Address">Email Address</option> 
     <option value="Given Name">Given Name</option> 
     <option value="Family Name">Family Name</option> 
     <option value="Display Name">Display Name</option> 
    </select> 

感谢大家抽出时间来阅读我的问题,并为您的宝贵建议。但在这里我找到了解决我的问题的方法。现在,我正在使用一个javascript函数,它会在每次选择后使selectedIndex = 0。

这里是代码:

 function drpChanged(ddl) { 
     var drpInsertMerge = document.getElementById("drpInsertMerge"); 

     var selectedText = drpInsertMerge.options[drpInsertMerge.selectedIndex].innerHTML; 
     var selectedValue = drpInsertMerge.value; 

     drpInsertMerge.selectedIndex = 0; 

     return false; 
    } 

    <select id="drpInsertMerge" onchange="drpChanged(this);"> 
     <option selected>{}</option> 
     <option value="Phone Number">Phone Number</option> 
     <option value="Email Address">Email Address</option> 
     <option value="Given Name">Given Name</option> 
     <option value="Family Name">Family Name</option> 
     <option value="Display Name">Display Name</option> 
    </select> 

再次感谢大家。