项目总结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个 标题链接:<?= ... 
随机推荐
- Windows 环境变量立即生效
			先进环境变量 保存一个份PATH值. 万一改错就不好了 cmd窗口中 set path=XXXXXXXX 
- iOS 坐标转换
			例:把A view上的某个点的坐标(a)转换到B view上,两种方法 CGPoint targetPointB = [A convertPoint:a toView:B];(记忆方法:把A上的某个点 ... 
- MySQL5.7 并行复制配置
			转自:https://www.cnblogs.com/langdashu/p/6125621.html [MySQL] 号称永久解决了复制延迟问题的并行复制,MySQL5.7 一.缘由: 某天看到主从 ... 
- 设计模式入门——Head First
			设计模式是被前人发现.经过总结形成了一套某一类问题的一般性解决方案.使用模式最好的方式是:把模式装进脑子,然后在设计和已有的应用中,寻找何处可以使用它们.以往是代码复用,现在是经验复用. 从模拟鸭子游 ... 
- k8s的Deployment 滚动升级
			首先定义一个Deployment,并创建它 apiVersion: apps/v1beta1 kind: Deployment metadata: name: house-live spec: rep ... 
- centOS6.6网络设置
			linux的网卡IP地址是存放在文件中的,这个配置文件在/etc/sysconfig/network-scripts下, 名称分别为ifcfg-eth0,ifcfg-eth1等 如果你只有一块网卡,就 ... 
- 关于openwrt使用web升级提示固件版本不对的处理方法
			参考资料:https://blog.csdn.net/caoshunxin01/article/details/79355602 当openwrt使用web升级提示固件版本不对: The upload ... 
- c语言基本数据类型及存储方式
			; ; ; ; ; ; ; ; float a9 = 109.23; float a10 = 111.23; double a11 = 113.113; double a12 = 115.113; c ... 
- app与jvm 反向代理时config的设置(用于在web页面显示npm(就如tomcat)产生的页面)
			dev: { // Various Dev Server settings contentBase: ROOT, host: ip, port: 8084, //此端口为任意设置,不重复即可,为 ... 
- 闹钟AlarmAndMusic 和支持播放音乐效果《IT蓝豹》
			闹钟AlarmAndMusic 和支持播放音乐效果的,上下滑动调整时间和页面旋转风车效果,由于制作的gif有些问题,效果不明显,欢迎下载使用看看真实的效果.本例子主要由AlertActivity和Al ... 
