二季域名做网站南京百度seo
使用bootstrap-select时,下拉多选值的获取遇到了问题,正常方式获取select的值,只能获取最后一次选中项的值;这里参考网友们的做法,暂时只能通过一个隐藏input控件传值,这里只贴获取select所有选中值的js代码。
参考:
https://blog.csdn.net/aijava_1990/article/details/55098681
https://www.cnblogs.com/beileixinqing/archive/2018/05/22/9070671.html
<input type="hidden" class="form-control" name="channelsList" id="channelsList" >
渠道:
<select name="channels" id="channels" class="selectpicker" title="全部" multiple data-live-search="true" data-selected-text-format="count > 2"><option value="10001">测试1</option><option value="10002">测试2</option><option value="10003">测试3</option>
</select>
提交表单时给channelsList赋值,后端通过数组或字符串接收channelsList值(字符串将取到逗号分隔的字符串)。
1. 直接通过jquery的val()函数获取select所有被选中项
function doSubmit(){$("#channelsList").val($("#channels").val());//选中值逗号拼接放入隐藏元素}
2. jQuery遍历选中项获取
function doSubmit(){var str=[];$("#channels option:selected").each(function () {str.push($(this).val());// 收集选中项})alert(str);$("#channelsList").val(str);}
3. js遍历判断选中获取
function doSubmit(){var str=[];var obj = document.getElementById("channels");for(var i=0;i<obj.options.length;i++){if(obj.options[i].selected){str.push(obj.options[i].value);// 收集选中项}}alert(str);$("#channelsList").val(str);}