Bootstrap的Select异步刷新时有问题
2014-10-22 15:29
253 查看
使用bootstrap的select控件后,用$().append()option,发现<ul>里面的内容没有跟着改变,<select id="OS" class="span2 chosen chzn-done">和<div id="OS_chzn" class="chzn-container undefined chzn-container-single">里面的<ul>是对应的。用JSON返回的数据异步刷新select时,ul里面的值没有改变,尝试过下面两张方法都不行:
1. 这种可以添加Select里面的Option,但是不能改变div里面ul里面的值。页面展示没有刷新。
2. 下面这种是不能改变Select里面的值,可以刷新改变显示的option元素,也就是页面展示有变化,就是ul里面的值变了,但是选不中你点击的那个option。
Html:
解决方法如下:
1. 看到同事的做法(点击打开链接)
2. 我的做法:
Jquery:
1. 这种可以添加Select里面的Option,但是不能改变div里面ul里面的值。页面展示没有刷新。
var ajaxUrl = '/config/loadTypeValues?page_no=1&page_size=100&searchContent=' + typeName; $.ajax({ type:'get', url:ajaxUrl, dataType:'json', cache:false, success:function(data){ alert(data); for (var i=0; i < data.length; i++) { $('#' + typeName).append("<option value=" + data[i][3] + ">" + data[i][1]+ "</option>"); } }, error:function(){ jAlert('There are some errors happened'); } });
2. 下面这种是不能改变Select里面的值,可以刷新改变显示的option元素,也就是页面展示有变化,就是ul里面的值变了,但是选不中你点击的那个option。
$('#' + typeName + '_chzn ul').empty(); // $('#' + typeName).append("<option value=''>-</option>"); // $('#' + typeName + '_chzn ul').append("<li class='active-result' id=" + typeNameStr + "_chzn_o_0>-</li>"); for (var i=0; i < data.length; i++) { // $('#' + typeName).append("<option value=" + data[i][3] + ">" + data[i][1]+ "</option>"); // // $('#' + typeName + '_chzn ul').append("<li class='active-result' id=" + typeNameStr + "_chzn_o_" + i + 1 + ">" + data[i][1] + "</li>"); } },
Html:
<c:when test="${type.controlStyle == 2}"> <div class="control-group"> <label class="control-label">${type.typeName}</label> <div class="controls" id="controls-${type.typeNameStr}"> <select id="${type.typeNameStr}" name="" class="span2 chosen" onchange="" tabindex="0"> <c:set var="typeValues" value="${type.typeValues}"/> <option>-</option> <c:forEach var="typeValue" items="${typeValues}" > <option value="${typeValue[3]}">${typeValue[1]}</option> </c:forEach> </select> </div> </div> </c:when>
解决方法如下:
1. 看到同事的做法(点击打开链接)
2. 我的做法:
Jquery:
success:function(data){ $('#' + typeNameStr).remove(); $('#' + typeNameStr + '_chzn').remove(); var optionElement = "<option>-</option>"; for (var i=0; i < data.length; i++) { optionElement += "<option value=" + data[i][3] + ">" + data[i][1]+ "</option>"; } var selectElement = "<select id='" + typeNameStr + "' name='' class='span2 chosen' tabindex='0'> " + optionElement + " </select>" alert(selectElement) $('#controls-' + typeNameStr).append(selectElement); }, error:function(){ jAlert('There are some errors happened'); } });
相关文章推荐
- Bootstrap 的select控件怎么选中或是异步刷新。
- knockout Ajax异步无刷新分页 Demo +mvc+bootstrap
- bootstrap jquery dataTable 异步ajax刷新表格数据
- 57-005-3 bootstrap实现一个简单的项目案例--新闻操作(基于jsp无刷新异步操作)
- 【工作笔记0002】(ajax)多个select标签异步取值刷新
- bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
- 用select下拉菜单来实现Ajax异步刷新
- bootstrap-select怎么刷新数据
- bootstrap jsp页面前后端交互 包括html中的Radio与Select的赋值
- 基于BootStrap与PHP相结合的带有搜索框的ajax无刷新分页案例(支持三种搜索)
- 【bootstrap】--- 动态给select赋值(未完)
- BootStrap 模态框实现刷新网页并关闭功能
- .NET Compact Framework 多线程环境下的UI异步刷新
- Linux socket网络编程之聊天室(三):select异步通讯实现
- 利用ajaxSubmit无刷新异步上传导入Excel,无刷新提交表单
- ajax异步刷新得到json数据
- asp.net页面刷新有问题
- jQuery使用$.ajax进行异步刷新的方法(附demo下载)
- Javascript 实现无刷新联动菜单(select)的方法
- Bootstrap Multiselect 常用组件实现代码