52 Stimmen

jQuery multiselect Dropdown-Menü

Ich habe eine einfache html-Mehrfachauswahl-Dropdown-Liste:

<select id="transactionType" multiple="multiple" size="10">
  <option value="ALLOC">ALLOC</option>
  <option value="LOAD1">LOAD1</option>
  <option value="LOAD2">LOAD2</option>
  <!-- etcetera... -->
</select>

Ich möchte weiterhin diese Liste für den Fall verwenden, Javascript deaktiviert ist jedoch mit javaScript Ich möchte die Liste als Multi-Select-Dropdown-Liste zu machen. Das heißt, es zeigt nur ein Element in der Liste, bis geklickt und dann erweitert, um x Elemente zu zeigen und bieten Scrollen, wo ich mehrere Elemente auswählen können, wie Sie erwarten würden, während Sie Umschalt- oder Strg halten.

Neu bei jQuery war die Suche nach dem http://jquery.com/ aber ich habe noch nicht gefunden, was ich brauche.

bearbeiten Struts2-Benutzer, die ausgewählte Antwort wird url kodieren mit [] dies verursacht Probleme in Struts2 der Fix ist jedoch sehr einfach. Öffnen Sie einfach jquery.multiSelect.js und suchen Sie nach "[]" und löschen Sie die eine Instanz dies in einer String-Verkettung verwendet wird. Ich bin auch mit jQuery 1.4.4 im Gegensatz zu den 1.3.2, die mit ihm gebündelt kam und alles funktioniert ganz gut.

1voto

wasay raza Punkte 11
<select id="mycontrolId" multiple="multiple">
   <option value="1" >one</option>
   <option value="2" >two</option>
   <option value="3">three</option>
   <option value="4">four</option>
</select>

var data = "1,3,4"; var dataarray = data.split(",");

$("#mycontrolId").val(dataarray);

1voto

nmz787 Punkte 1691

Sie könnten Ihre eigene hacken, nicht auf jQuery-Plugins verlassen ... obwohl Sie müssten extern zu verfolgen (in JS) der ausgewählten Elemente s

<head>
  <script type='text/javascript' src='http://code.jquery.com/jquery-1.4.4.min.js'></script>
  <script type='text/javascript'>
    $(window).load(function(){
      $('#transactionType').focusin(function(){
        $('#transactionType').attr('multiple', true);
      });
      $('#transactionType').focusout(function(){
        $('#transactionType').attr('multiple', false);
      });
    });>  
  </script>
</head>
<body>
  <select id="transactionType">
    <option value="ALLOC">ALLOC</option>
    <option value="LOAD1">LOAD1</option>
    <option value="LOAD2">LOAD2</option>
  </select>  
</body>

1voto

JoyGuru Punkte 1665

I M

I

$('#transactionType').multiselect({
    columns: 1,
    placeholder: 'Select Transaction Type'
});

0voto

Robert Punkte 20690

Möchten Sie etwas Ähnliches tun? http://jsfiddle.net/robert/xhHkG/

$('#transactionType').attr({
    'multiple': true,
    'size' : 10
});

Stecken Sie das in eine $(function() {...}) oder eine andere Nachladung

bearbeiten

Lesen Sie Ihre Frage, Sie sind nicht wirklich auf der Suche nach einer Mehrfachauswahl... aber eine Dropdown-Box, die Ihnen erlaubt, mehrere zu wählen. Ja, wahrscheinlich am besten, um ein Plugin für das zu verwenden oder schreiben Sie es von Grund auf, es ist nicht eine "schnelle Antwort" Art Deal aber.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X