Как получить все выбранные опции text form multi select Использование Javascript
У меня есть проблема в выборе всех выбранных параметров в multi select
<select multiple="" title="" class="" id="fm_delivery_or_collection" name="fm_fields[fm_delivery_or_collection][]">
<option value="90">Delivery or Collection1</option>
<option value="91">Delivery or Collection2</option>
<option value="92">Delivery or Collection3</option>
</select>
Bellow - это мой код, и он возвращает мне только первый выбранный вариант
var select = form.find('select')
for (var i = 0; i < select.length; i++)
{
var s_id = jQuery(select[i]).attr('id');
var str="",i;
var e = document.getElementById(s_id);
var strUser = e.options[e.selectedIndex].text;
var name = jQuery(select[i]).attr('name')
var str1 = jQuery(select[i]).attr('id').replace("fm_"," ")
requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>";
}
Итак, пожалуйста, предложите мне, как я могу получить весь текст выбранного варианта и где я ошибаюсь?
Ответы
Ответ 1
Ваш комментарий please suggest me how can i get all selected option text
, Итак, вы можете попробовать:
$("#fm_delivery_or_collection option:selected").each(function () {
var $this = $(this);
if ($this.length) {
var selText = $this.text();
console.log(selText);
}
});
Ответ 2
// Return an array of the selected opion values
// select is an HTML select element
function GetSelectValues(select) {
var result = [];
var options = select && select.options;
var opt;
for (var i=0, iLen=options.length; i<iLen; i++) {
opt = options[i];
if (opt.selected) {
result.push(opt.value || opt.text);
}
}
return result;
}
передайте эту функцию в свой поле выбора как...
var selectBox = document.getElementsById('fm_delivery_or_collection');
alert(GetSelectValues(selectBox ));
он вернет массив выбранных значений
Используя JQuery
$('select#fm_delivery_or_collection').val()
функция val
, вызываемая из select
, вернет массив, если его несколько.
Ответ 3
сделать все в одну строку сейчас
var text = $('#selector option:selected').toArray().map(item => item.text).join();
это возвращается так:
text1,text2,text3,text4
Ответ 4
Попробуйте с этим
$("#fm_delivery_or_collection option").each(function(){
if($(this).attr('selected') == 'selected')
{
var name = $("#fm_delivery_or_collection").attr('name')
var str1 = $("#fm_delivery_or_collection").attr('id').replace("fm_"," ")
requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>";
}
})
Ответ 5
$("#id :selected").each(function (i,sel) {
alert($(sel).text());
});
Надеюсь, что это поможет...
Ответ 6
попробуйте эту ссылку:
$("#selection option:selected").each(function () {
var $this = $(this);
if ($this.length) {
var selText = $this.text();
console.log(selText);
$('#selected').append(selText+', ');
}
});
Ответ 7
Сэр, я хочу сделать несколько вариантов выбора одновременно, и это также печатать на динамической таблице в JavaScript с помощью операции crud. Как я могу это сделать, пожалуйста, помогите мне.
Ответ 8
Просто добавьте эту строку кода: -
var reciever= jQuery('#to_select option:selected').toArray().map(item => item.text).join();
/* alert(reciever); */