multiselect - select multiple javascript values
Obtiene el valor de la casilla multiselect usando jQuery o JS puro (7)
Este documento es como un Santo Grial para seleccionar y jquery. http://comp345.awardspace.com/select_element_cheatsheet.pdf
En el código que se muestra a continuación, ¿cómo obtener los valores de la casilla multiselección en la función val()
usando jQuery o JavaScript puro?
<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:
<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;">
¡Gracias por adelantado!
la función val
llamada desde la select
devolverá una matriz si es un múltiple. $(''select#my_multiselect'').val()
devolverá una matriz de valores para las opciones seleccionadas; no es necesario que realice un bucle y las obtenga usted mismo.
De acuerdo con la página del widget , debería ser:
var myDropDownListValues = $("#myDropDownList").multiselect("getChecked").map(function()
{
return this.value;
}).get();
Esto funciona para mi :)
Esto me dio el valor y el texto de las opciones seleccionadas para el plugin jQuery multiselect.js :
$("#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..
}
});
muy útil si lo necesita para su evento "onChange";)
var data=[];
var $el=$("#my-select");
$el.find(''option:selected'').each(function(){
data.push({value:$(this).val(),text:$(this).text()});
});
console.log(data)
Creo que la respuesta puede ser más fácil de entender así:
$(''#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
Si selecciona "Zanahoria" y "Pasas" en la lista, la salida será "1,3".
Podrías hacer esto también.
<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>
Luego tome la selección múltiple del siguiente código PHP a continuación. Imprime los valores múltiples seleccionados en consecuencia.
$shift=$_POST[''selectDuration''];
print_r($shift);