项目总结09:select标签下封装option标签
项目中经常用到Select标签,用封装好的方法获取option,可以避免冗赘的代码;
1.JSP--标签
<select class="width_md" name="queryProjectSupType" id="queryProjectSupType" title="项目类型-大类"></select>
2.JS1--实例化option
<script type="text/javascript">
$().ready(function(){
SELECT_LIST.getProjectSupType("queryProjectSupType", "${pd.queryProjectSupType}");
})
</script>
3.JS2--数据封装
var SELECT_LIST = {
getProjectSupType: function(targetId,selectValue){
var url = 'dictionary/list/condition';
var dicType = {};
dicType.url = url;//ajax的url
dicType.targetId = targetId;//即将实例化的select标签的id
dicType.keyValue = "dicName";//从数据库获取的Json数据,将key为"dicName"的value赋值给option的value属性
dicType.keyName = "dicName";//从数据库获取的Json数据,将key为"dicName"的value赋值给option的text属性
dicType.condition = {codeId:8};//这是从传给数据库的数据筛选条件,因需求而异
dicType.firstOption = "<option value=''>请选择分类</option>";//默认的第一个option标签的text属性
dicType.selectedValue = selectValue;//标签实例化后,value等于selectValue的option,将默认选中
ajaxGenerateSelect(dicType);//ajax获取数据,生成option数据
}
}
3.JS3--1.ajax获取数据,2.js生成option标签,并放入Select标签
function ajaxGenerateSelect(selectObject){
var url = selectObject.url;
var method = selectObject.method ? selectObject.method : "POST";
var keyValue = selectObject.keyValue ? selectObject.keyValue : "id";
var keyName = selectObject.keyName ? selectObject.keyName : "name";
var selectedValue = selectObject.selectedValue ? selectObject.selectedValue : null;
var targetId = selectObject.targetId;
var condition = selectObject.condition ? selectObject.condition : {};
var afterHandle = selectObject.afterHandle;
var formatter = selectObject.formatter;
var firstOption = selectObject.firstOption;
var ajaxObject = {};
ajaxObject.url = url;
ajaxObject.method = method;
ajaxObject.data = JSON.stringify(condition);
ajaxObject.success = function(result){
var data = result.data;
var html = "";
if(firstOption){
html = firstOption;
}
for(var i=0;i<data.length;i++){
var selected = "";
var dataItem = data[i];
if(selectedValue == dataItem[keyValue]){
selected = "selected";
}
var option = "<option value='#(value)' #(selected)>#(name)</option>";
var nameValue = dataItem[keyName];
if(formatter){
nameValue = formatter(dataItem);
}
option = option.replace("#(value)", dataItem[keyValue]).
replace("#(name)",nameValue).replace("#(selected)", selected);
html += option;
}
$("#" + targetId).html('').append(html);
if(afterHandle){
afterHandle();
}
}; ajaxMethod(ajaxObject);
}
项目总结09:select标签下封装option标签的更多相关文章
- qt 删除xml某个标签下所有子标签
代码如下: QDomNodeList listFlowChart= doc.elementsByTagName("device"); QDomElement flowChart = ...
- jquery 条件搜索某个标签下的子标签
$("li[name='"+name+"']").find("a[value='" + value + "']").pa ...
- jquery怎么获取当前标签下的子标签
1.var num1=$("ul > a:eq(0)").attr("ID");2.var num2=$("ul").children ...
- select下拉框的探索(<option></option>标签中能嵌套使用其它标签吗)
select标签大家应该经常用到,有个问题可能没怎么注意过, select标签里面的option标签可以嵌套其它标签吗,比如i,span标签等? 经本人测试,答案是:可以嵌套其它标签,但审查元素会 ...
- html select与option标签
1.select 元素 select 元素可创建单选或多选菜单.<select> 元素中的 <option> 标签用于定义列表中的可用选项 常用属性如下: autofocus: ...
- 来吧,HTML5之基础标签(下)
<dialog> 标签 定义对话框或窗口. <dialog> 标签是 HTML 5 的新标签.目前只有 Chrome 和 Safari 6 支持 <dialog> ...
- HTML常用标签(下)
HTML常用标签(下) 1. 表格标签 1.1 语法 <table> <!--table定义表格--> <tr> <!--tr定义表格中的行--> &l ...
- IE6 P标签下DIV无法inline-block
IE6 P标签下的DIV标签无法inline-block,使其触发了hasLayout属性再用csshack 使其inline还是不行,始终要换行 解决:把div标签替换成非div标签,比如span等 ...
- 帝国cms灵动标签下常用标签
这里简单整理下灵动标签下的常用标签 标题名称:<?=$bqr['title']?> <?=esub($bqr[title],22)?> 限制字符22个 标题链接:<?= ...
随机推荐
- day07-多表查询
本节重点: 多表连接查询 符合条件连接查询 子查询 准备工作:准备两张表,部门表(department).员工表(employee) create table department( id int, ...
- day20-面向对象编程、继承
一.面向对象编程 1.简介 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. ...
- Spring BeanUtils简单使用
引入包 <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-be ...
- hIve—timestamp时间戳问题
先查看表 timestamp可以转换为标准的时间(精确到秒);https://tool.lu/timestamp/ 这个时间格式用处很多: 多个时间可以使用函数,来切换. 每个用户 产生行为的时候,用 ...
- Firebird日期时间操作
最近在使用Firebird数据做 一项目,使用FireBird边用边学.(以下转贴) 查询2007年度以后的,12月份以上的数据记录,datetime为timestamp字段 select * fro ...
- vscode项目配置 vue-loader-webpack
使用vsCode进行项目配置 一.准备工作 1.下载Visual Studio Code 下载地址 2.打开vscode,根据自己需求下载相应插件,可以提高工作效率. 点击下角选项(我作了红框标记), ...
- linux shell 语法学习
文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tmp/ ...
- [jQ/PHP]再谈使用JS数组储值的运用(提交PHP处理)
--------------------------------------------------------------------------------------------------- ...
- KVM虚拟化技术(五)虚拟机管理
一.为了提高内存.硬盘.网络的性能,需要支持半虚拟化:virtio半虚拟化驱动 二.对虚拟机的管理都是通过libvirt:所有必须要启用一个守护程序libvirtd. 三.virt-manager ① ...
- 使用__future__实现从python2.7到python3.x的过渡
参考链接:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820023 ...