it-swarm.com.de

Holen Sie sich den Wert der Mehrfachauswahlbox mit jQuery oder pure JS

Wie erhalte ich im folgenden Code die Werte der Multiselect-Box in der Funktion val() mit jQuery oder reinem JavaScript?

<script>
    function val() {
        //Get values of mutliselect drop down box
    }

    $(document).ready(function () {
        var flag = 0;
        $('#emp').change(function () {
            var sub = $("OPTION:selected", this).val()
            if (flag == 1) $('#new_row').remove();
            $('#topics').val('');
            var html = '<tr id="new_row" class="new_row"><td>Topics:</td><td>  <select    id="topic_l" name="topic_l" class="topic_l" multiple="multiple">';
            var idarr = new Array();
            var valarr = new Array(); { %
                for top in dict.tops %
            }
            idarr.Push('{{top.is}}');
            valarr.Push('{{pic.ele}}'); { % endfor %
            }
            for (var i = 0; i < idarr.length; i++) {
                if (sub == idarr[i]) {
                    html += '<option value="' + idarr[i] + '" >' + valarr[i] + '</option>';
                }
            }
            html += '</select></p></td></tr>';
            $('#tops').append(html);
            flag = 1;
        });
    });
</script>
Emp:&nbsp;&nbsp;&nbsp;&nbsp;
<select id="emp" name="emp">
    <option value=""></option>
    <option value="1">1</option>
</select>

<div name="tops" id="tops"></div>

<input type="submit" value="Create Template" id="create" onclick="javascript:var ret=val();return ret;">

Danke im Voraus!

41
Hulk

die val-Funktion, die von der select aufgerufen wird, gibt ein Array zurück, wenn es ein Vielfaches ist. $('select#my_multiselect').val() liefert ein Array der Werte für die ausgewählten Optionen - Sie müssen nicht durchlaufen und sie selbst abrufen.

102
prodigitalson

Ich denke, die Antwort ist vielleicht einfacher zu verstehen:

$('#empid').on('change',function() {
  alert($(this).val());
  console.log($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<select id="empid" name="empname" multiple="multiple">
  <option value="0">Potato</option>
  <option value="1">Carrot</option>
  <option value="2">Apple</option>
  <option value="3">Raisins</option>
  <option value="4">Peanut</option>
</select>
<br />
Hold CTRL / CMD for selecting multiple fields

Wenn Sie in der Liste "Karotte" und "Rosinen" auswählen, wird die Ausgabe "1,3" ausgegeben.

25
Etdashou

Dieses Dokument ist wie ein heiliger Gral für select und jquery . http://comp345.awardspace.com/select_element_cheatsheet.pdf

14
Aseem Gautam
var data=[];
var $el=$("#my-select");
$el.find('option:selected').each(function(){
    data.Push({value:$(this).val(),text:$(this).text()});
});
console.log(data)
10
aykut aydoğan

Entsprechend der Seite des Widgets sollte es lauten:

var myDropDownListValues = $("#myDropDownList").multiselect("getChecked").map(function()
{
    return this.value;    
}).get();

Für mich geht das :)

1
Yulian

Dies brachte mir den Wert und den Text der ausgewählten Optionen für das jQuery multiselect.js plugin:

$("#selectBox").multiSelect({
    afterSelect: function(){
        var selections = [];
        $("#selectBox option:selected").each(function(){
            var optionValue = $(this).val();
            var optionText = $(this).text();
            console.log("optionText",optionText);                
            // collect all values
            selections.Push(optionValue);
        });

        // use array "selections" here.. 
    }
});   

sehr nützlich, wenn Sie es für Ihr "onChange" -Ereignis benötigen;)

1
notMyName

Das könnte man auch so machen.

<form action="ResultsDulith.php" id="intermediate" name="inputMachine[]" multiple="multiple" method="post">
    <select id="selectDuration" name="selectDuration[]" multiple="multiple"> 
        <option value="1 WEEK" >Last 1 Week</option>
        <option value="2 WEEK" >Last 2 Week </option>
        <option value="3 WEEK" >Last 3 Week</option>
         <option value="4 WEEK" >Last 4 Week</option>
          <option value="5 WEEK" >Last 5 Week</option>
           <option value="6 WEEK" >Last 6 Week</option>
    </select>
     <input type="submit"/> 
</form>

Nehmen Sie dann die Mehrfachauswahl aus dem folgenden Code PHP vor. Die ausgewählten Mehrfachwerte werden entsprechend gedruckt.

$shift=$_POST['selectDuration'];

print_r($shift);
0
Dulith De Costa