Bootstrap-select下拉多选获取选中的数据
2017-12-14 15:42
253 查看
刚好用到bootstrap-select插件,遇到问题:
1.如何把选中的人员[名字+id]获取到?
2.后台要求的是json格式的数据,如何处理?
3.前端用el表达式在jsp中绑定了<select><option>,把id绑到哪个位置方便获取?(实际情况是绑到哪儿都不好获取)
实现出来的样式:
解决:1.JSP中绑定数据 顺便把后台返回的id绑到 option 的class属性上去;
<select id="id_select" class="form-control selectpicker"
name="staffDo" onchange="getOptoions(this);" multiple
data-live-search="true">
<c:forEach items="${workers}" var="workers">
<option value="${workers.staffName}"
class="${workers.staffId}">${workers.staffName}【${workers.mobielTel}】</option> </c:forEach>
</select>2.给select绑定一个onchange事件:
//取出选择的任务执行人的方法
function getOptoions() {
var id = "", staffName = "", staffs = [], staffNameStr = "";
//循环的取出插件选择的元素(通过是否添加了selected类名判断)
for (var i = 0; i < $("li.selected").length; i++) {
//通过选择器和筛选条件找到name和ID
id = $("li.selected").eq(i).find("a").attr("class");
staffNameStr = $("li.selected").eq(i).find(".text").text();
//用来截取名字(去掉取出来的电话号码)
staffName = staffNameStr.substring(0, staffNameStr.indexOf("【"));
//以键值对的形式加到数组中去
staffs.push({
staffId : id,
staffName : staffName
});
}
//将包含对象的数组转换成json格式
var staffStr = JSON.stringify(staffs);
//赋值给隐藏的Input域
if (staffStr.length > 0) {
$("#taskStaffs").val(staffStr);
} else {
$("#taskStaffs").val("");
}
}
由于还有表单验证等一堆东西,先写到这儿自己记一下。
PS:这里发现for循环比.each()方法要灵活很多,当然也有可能是对这个方法理解的不是很透彻。
继续学习中。
1.如何把选中的人员[名字+id]获取到?
2.后台要求的是json格式的数据,如何处理?
3.前端用el表达式在jsp中绑定了<select><option>,把id绑到哪个位置方便获取?(实际情况是绑到哪儿都不好获取)
实现出来的样式:
解决:1.JSP中绑定数据 顺便把后台返回的id绑到 option 的class属性上去;
<select id="id_select" class="form-control selectpicker"
name="staffDo" onchange="getOptoions(this);" multiple
data-live-search="true">
<c:forEach items="${workers}" var="workers">
<option value="${workers.staffName}"
class="${workers.staffId}">${workers.staffName}【${workers.mobielTel}】</option> </c:forEach>
</select>2.给select绑定一个onchange事件:
getOptoions(this);3.检查插件生成的元素发现选中元素都会添加一个"selected"类名,则通过类名获取
//取出选择的任务执行人的方法
function getOptoions() {
var id = "", staffName = "", staffs = [], staffNameStr = "";
//循环的取出插件选择的元素(通过是否添加了selected类名判断)
for (var i = 0; i < $("li.selected").length; i++) {
//通过选择器和筛选条件找到name和ID
id = $("li.selected").eq(i).find("a").attr("class");
staffNameStr = $("li.selected").eq(i).find(".text").text();
//用来截取名字(去掉取出来的电话号码)
staffName = staffNameStr.substring(0, staffNameStr.indexOf("【"));
//以键值对的形式加到数组中去
staffs.push({
staffId : id,
staffName : staffName
});
}
//将包含对象的数组转换成json格式
var staffStr = JSON.stringify(staffs);
//赋值给隐藏的Input域
if (staffStr.length > 0) {
$("#taskStaffs").val(staffStr);
} else {
$("#taskStaffs").val("");
}
}
由于还有表单验证等一堆东西,先写到这儿自己记一下。
PS:这里发现for循环比.each()方法要灵活很多,当然也有可能是对这个方法理解的不是很透彻。
继续学习中。
相关文章推荐
- 通过AJAX获取ashx后台JSON数据并使用bootstrap-Table控件
- jquery获取GridView中RadioButton选中的数据
- bootstrap的pages控件分页获取数据
- jquery获取table指定行和列的数据(当前选中行、列)
- droplist在后台绑定数据,在后天怎么获取选中的值?
- [Extjs6]获取gridpanel内选中的数据
- bootstrapTable 获取选中CheckBox的所有数据
- DataWindow(PB)的获取数据窗口选中行的操作解疑!dw_1.getSelectedRow(long r)
- bootstrap selectpicker 通过代码指定选中值 BootStrap selectpicker后台动态绑定数据 selectpicker 获取选中option的属性或者值
- bootstrap-table的入门使用——从服务器获取数据
- bootstrap table ajax获取后台数据后js做判断
- bootstrap table 获取选中行数据
- 获取到AdvancedDataGrid选中行的全部数据
- C# 获取ListView中选中行中对应的列数据
- radiobuttonlist动态绑定、获取数据中数据进行选中以及写入数据库
- bootstrap-table复选框默认选中。(从数据库获取到对应的状态进行判断是否为选中状态)
- asp.net实现 gridview 鼠标单击任意字段选中一行 ,并获取数据
- dataGridView操作数据(增加 读取 绑定 获取选择的单元格 选中整行单元格时颜色变换 更新数据 锁定列的位置 添加行 列头的方法)
- bootstrap表格 之多选数据的获取
- 使用vue Ajax获取数据列表并用BootStrap显示