layui利用jQuery设置下拉列表的值
今天在利用jQuery动态设置下拉列表的值的时候确怎么也赋值不上去,其中用到了layui框架,源代码如下:
$.post(contextPath+'/courseLibrary/getCourseBaseInfoById.do',{"courseId":courseId},function (courseInfoBack) {
// initSelectValue("[name='courseplatform']",courseInfoBack.courseplatform);
$("[name='courseid']").val(courseInfoBack.courseid);//向隐藏的课程主键赋值
$("[name='coursenum']").val(courseInfoBack.coursenum);
$("[name='courseplatform'] option[value='"+courseInfoBack.courseplatform+"']").attr("selected","true");
$("[name='coursenamecn']").val(courseInfoBack.coursenamecn);
$("[name='coursenameen']").val(courseInfoBack.coursenameen);
$("[name='coursenature'] option[value='"+courseInfoBack.coursenature+"']").attr("selected","true");
$("[name='credit']").val(courseInfoBack.credit);
$("[name='coursehour']").val(courseInfoBack.coursehour);
$("[name='teachhour']").val(courseInfoBack.teachhour);
$("[name='experimenthour']").val(courseInfoBack.experimenthour);
$("[name='computerhour']").val(courseInfoBack.computerhour);
$("[name='practicehour']").val(courseInfoBack.practicehour);
$("[name='weeklyhour']").val(courseInfoBack.weeklyhour);
$("[name='coursehourmethod'] option[value='"+courseInfoBack.coursehourmethod+"']").attr("selected","true");
$("[name='scoringway'] option[value='"+courseInfoBack.scoringway+"']").attr("selected","true");
},'json')
后来查看页面源码发现option确实多了selected属性,可是由于使用了layui,layui将selected包装为dl与dd,所以我们看到的会失效:

解决办法:(更新渲染)
layui的 Form模块的自动化渲染是会对其失效的。虽然我们没有双向绑定机制, 但没有关系,你只需要执行 form.render(type, filter); 方法即可。
第一个参数:type,为表单的type类型,可选。默认对全部类型的表单进行一次更新。可局部刷新的type如下表:
| 参数(type)值 | 描述 |
|---|---|
| select | 刷新select选择框渲染 |
| checkbox | 刷新checkbox复选框(含开关)渲染 |
| radio | 刷新radio单选框框渲染 |
form.render(); //更新全部
form.render('select'); //刷新select选择框渲染
//……
第二个参数:filter,为 class="layui-form" 所在元素的 lay-filter="" 的值。你可以借助该参数,对表单完成局部更新。
【HTML】
<div class="layui-form" lay-filter="test1">
…
</div>
<div class="layui-form" lay-filter="test2">
…
</div>
【JavaScript】
form.render(null, 'test1'); //更新 lay-filter="test1" 所在容器内的全部表单状态
form.render('select', 'test2'); //更新 lay-filter="test2" 所在容器内的全部 select 状态
//……
参考:http://www.layui.com/doc/modules/form.html#render
因此上述代码改为:
$.post(contextPath+'/courseLibrary/getCourseBaseInfoById.do',{"courseId":courseId},function (courseInfoBack) {
// initSelectValue("[name='courseplatform']",courseInfoBack.courseplatform);
$("[name='courseid']").val(courseInfoBack.courseid);//向隐藏的课程主键赋值
$("[name='coursenum']").val(courseInfoBack.coursenum);
$("[name='courseplatform'] option[value='"+courseInfoBack.courseplatform+"']").attr("selected","true");
$("[name='coursenamecn']").val(courseInfoBack.coursenamecn);
$("[name='coursenameen']").val(courseInfoBack.coursenameen);
$("[name='coursenature'] option[value='"+courseInfoBack.coursenature+"']").attr("selected","true");
$("[name='credit']").val(courseInfoBack.credit);
$("[name='coursehour']").val(courseInfoBack.coursehour);
$("[name='teachhour']").val(courseInfoBack.teachhour);
$("[name='experimenthour']").val(courseInfoBack.experimenthour);
$("[name='computerhour']").val(courseInfoBack.computerhour);
$("[name='practicehour']").val(courseInfoBack.practicehour);
$("[name='weeklyhour']").val(courseInfoBack.weeklyhour);
$("[name='coursehourmethod'] option[value='"+courseInfoBack.coursehourmethod+"']").attr("selected","true");
$("[name='scoringway'] option[value='"+courseInfoBack.scoringway+"']").attr("selected","true");
layui.use(['form'], function () {
$ = layui.jquery;
var form = layui.form;
form.render(); //刷新select选择框渲染
});
},'json')
最后再次查看源代码:

layui利用jQuery设置下拉列表的值的更多相关文章
- jquery获取下拉列表的值和显示内容的方法
页面的下拉列表: 选择时间段: <select name="timespan" id="timespan" class="Wdate" ...
- 实例讲解如何利用jQuery设置图片居中放大或者缩小
大家有没有见过其他网站的图片只要鼠标放上去就能放大,移出去的时候就能缩小,而且一直保持居中显示!其实jQuery提供一个animate函数可以使图片放大和缩小,只要改变图片的长和高就OK啦!但是ani ...
- 分别在javascript和JSP中动态设置下拉列表默认值
一.JavaScript中动态设置select标签中<option>选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 ...
- 如何用原生js或jquery设置select的值
1.原生js设置select值的方法 (1)有时可能需要隐藏select,但是还得需要更改select所传递的值.(select的默认选中之为第一个,即下标为0的选项值) var gd2=docume ...
- jquery设置文本框值 与获取文本框的值
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- jquery设置attr属性值
1.返回属性值 $(selector).attr(attribute); 2.设置属性值 $(selector).attr(attribute,value); 3.设置多个属性值 $(selector ...
- JQuery设置checkbox的值,取checkbox的值,设置radio的值,取radio的值,设置下拉选select的值,取select的值
一.复选框设置参数 html代码如下: <div class="flsm_btns"> <input type="hidden&q ...
- jquery 设置select 默认值
$('#@(Perfix)OrgType').children("option").each(function () { var temp_value = $(this).val( ...
- jquery设置checkbox状态,设置dropdownlist选中值,隐藏某控件,给某控件追加东西
jquery设置checkbox状态 $("[ID$=chkType]").attr("checked", true); jquery设置dropdownlis ...
随机推荐
- 将Python项目生成所有依赖包的清单requirements .txt文件
在开发中不同的项目总会牵扯到各种不同作用的包安装,下面是总结一下对写好的项目自动生成依赖清单,以及在新环境下解决依赖的方法: 一:生成所有依赖清单requirements.txt 这里需要使用到的工具 ...
- ZOJ2290_Game
题目意思是这样的,给定一个数N,第一个可以减去任意一个数(不能为N本身),然后接下来轮流减去一个数字,下一个人减去的数字必须大于0,且不大于2倍上一次被减去的数字. 把N减为0的人获胜. 看完题目后不 ...
- hdfs源码分析第二弹
以写文件为例,串联整个流程的源码: FSDataOutputStream out = fs.create(outFile); 1. DistributedFileSystem 继承并实现了FileSy ...
- 矩阵快速幂模板(pascal)
洛谷P3390 题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 输入输出格式 输入格式: 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素 输出格 ...
- 使用Appium上传/下载文件(push文件、pull文件)
package com.lx.class1; import java.io.File; import java.io.IOException; import java.net.URL; import ...
- React安装React Devtools调试工具
在运行一个React项目的时候浏览器控制台会提醒你去安装react devtools调试工具. Download the React DevTools for a better development ...
- BZOJ4919 大根堆(动态规划+treap+启发式合并)
一个显然的dp是设f[i][j]为i子树内权值<=j时的答案,则f[i][j]=Σf[son][j],f[i][a[i]]++,f[i][a[i]+1~n]对其取max.这样是可以线段树合并的, ...
- [HEOI2015]公约数数列
不错的分块题 gcd和xor其实并没有联系 这里,xor的按位性质没有半点卵用 gcd的性质却很关键: 一个数组,前缀gcd最多logn个不同的 gcd不太多,(暴力的基础) 所有考虑分块. 分块,每 ...
- oracle中建立job(任务)
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...
- STL源码分析-priority_queue
http://note.youdao.com/noteshare?id=402cd1487d34af1a11f0daac6d16132f