it-swarm.com.ru

Получите значение поля множественного выбора, используя jQuery или чистый JS

В приведенном ниже коде, как получить значения поля множественного выбора в функции val(), используя jQuery или чистый 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;">

Заранее спасибо!

41
Hulk

функция val, вызванная из select, вернет массив, если он кратен. $('select#my_multiselect').val() вернет массив значений для выбранных опций - вам не нужно проходить и получать их самостоятельно.

102
prodigitalson

Я думаю, что ответ может быть легче понять, как это:

$('#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

Если вы выберете «Морковь» и «Изюм» в списке, вывод будет «1,3».

25
Etdashou

Этот документ похож на Святой Грааль для избранных и 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

Согласно странице виджета , она должна быть:

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

Меня устраивает :)

1
Yulian

Это дало мне значение и текст selected опций для 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.. 
    }
});   

очень полезно, если вам это нужно для вашего события "onChange";)

1
notMyName

Вы могли бы сделать это тоже.

<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>

Затем возьмите множественный выбор из следующего PHP кода ниже. Он печатает выбранные несколько значений соответственно.

$shift=$_POST['selectDuration'];

print_r($shift);
0
Dulith De Costa