2012-03-08 13 views
81

Non ho molta esperienza in HTML. Sto cercando di creare una semplice casella di riepilogo, ma uno dei requisiti è DISATTIVARE la selezione multipla. La maggior parte del codice per le listbox va così:Come creare una listbox in HTML senza consentire selezioni multiple?

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

Ma ciò consente una selezione multipla.

Here, è stata posta una domanda simile, ma la "migliore" risposta è stata downvoted. Quindi non sono sicuro di come questo possa essere fatto. Per favore aiuto.

+5

Per altri nuovi arrivati, si prega di evitare il suddetto sito web per il tuo bene - hanno ottenuto una buona SEO, ma questo è tutto. È pieno di cattive abitudini e abitudini che ti pentirai di aver appreso in seguito. Utilizza l'API da MDN (Mozilla), in questo caso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select. – Ben

+3

@Steve grazie per l'avvertimento. Il suo commento "Questo è il motivo per cui ho un lavoro" mi è sembrato altrettanto arrogante. Se hai un lavoro, fa bene a te. Questo è un forum per risposte e non pubblicità. – CodeBlue

risposta

143

Basta utilizzare l'attributo size:

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

Votato per verità. Inoltre, quando la domanda è stata postata in precedenza, questa soluzione potrebbe non essere stata ampiamente supportata da tutti i browser. – aaroncatlin

+0

Probabilmente è stato downvoted perché non c'è nulla negli standard HTML che richiede al browser di renderlo come una listbox se l'attributo size è impostato. Sì, attualmente tutti i principali browser lo fanno, ma non c'è alcuna garanzia che lo faranno sempre. Realisticamente però, questo sarebbe un cambiamento irrisolto per così tanti siti Web, nessun browser è suscettibile di cambiarlo. – Elezar

+1

Lo standard è aperto a una piccola interpretazione: _ "La dimensione di visualizzazione di un elemento select è il risultato dell'applicazione delle regole per l'analisi di numeri interi non negativi al valore dell'attributo ** size ** dell'elemento, se ne ha uno e l'analisi ha successo. "_ Anche se questo non indica specificamente che dovrebbe essere visualizzato come Dropdown o Listbox, sarebbe difficile visualizzare un controllo Dropdown che mostri più di 1 elemento. (https://html.spec.whatwg.org/#the-select-element) – aaroncatlin

2

Per Asp.Net MVC

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

o

@Html.ListBoxFor(model => model.parameterName, 
    ViewBag.ParameterValueList as MultiSelectList, 
    new{ 
     data_placeholder = "Select Options ", 
     @class = "chosen-select form-control" 
    }) 
Problemi correlati