如何在HTML中创建列表框而不允许多项选择?


97

我在HTML方面没有太多经验。我希望创建一个简单的列表框,但要求之一是禁止多选。列表框的大多数代码都是这样的-

 <select name="sometext" multiple="multiple">
    <option>text1</option>
    <option>text2</option>
    <option>text3</option>
    <option>text4</option>
    <option>text5</option>
 </select>

但这允许多选。

在这里,提出了类似的问题,但“最佳”答案已被否决。因此,我不确定该怎么办。请帮忙。


5
对于其他新手,请您为了自己的利益而避免访问上述网站-他们拥有出色的SEO,仅此而已。到处都是不好的习惯和习惯,您以后会后悔的。使用MDN(Mozilla)中的API,在本例中为developer.mozilla.org/zh-CN/docs/Web/HTML/Element/select

3
@Steve感谢您的警告。他的评论“这就是为什么我有工作”也引起了人们的狂热。如果您有工作,对您有好处。这是一个提供答案而非广告的论坛。
CodeBlue

Answers:


170

只需使用size属性:

<select name="sometext" size="5">
  <option>text1</option>
  <option>text2</option>
  <option>text3</option>
  <option>text4</option>
  <option>text5</option>
</select>

需要说明的是,添加size属性不会删除多重选择。

单选有效,因为您删除了multiple =“ multiple”属性。

添加size =“ 5”属性仍然是一个好主意,这意味着必须至少显示5行。在此处查看完整参考


2
为真理而投票。另外,当问题在以前发布时,此解决方案可能未得到所有浏览器的广泛支持。
aaroncatlin

它可能被否决了,因为如果设置了size属性,HTML标准中没有任何内容要求浏览器将其呈现为列表框。是的,当前所有主流浏览器都可以,但是不能保证它们总是会这样做。实际上,对于许多网站来说,这将是一个巨大的变化,没有浏览器可能会对其进行更改。
Elezar 2015年

1
该标准有一点解释:“选择元素的显示大小是将规则解析非负整数应用于元素的size属性值(如果有)并成功解析的结果。” 尽管没有具体说明应将其显示为下拉列表或列表框,但要显示显示多个元素的下拉控件将​​很困难。(html.spec.whatwg.org/#the-select-element
aaroncatlin

谢谢!!显然,这可能是动态的:Js:D
Jcc.Sanabria


2

对于Asp.Net MVC

@Html.ListBox("parameterName", ViewBag.ParameterValueList as MultiSelectList, 
 new { 
 @class = "chosen-select form-control"
 }) 

要么

  @Html.ListBoxFor(model => model.parameterName,
  ViewBag.ParameterValueList as MultiSelectList,
   new{
       data_placeholder = "Select Options ",
       @class = "chosen-select form-control"
   })
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.