项目中经常用到Select标签,用封装好的方法获取option,可以避免冗赘的代码;

1.JSP--标签

  1. <select class="width_md" name="queryProjectSupType" id="queryProjectSupType" title="项目类型-大类"></select>

2.JS1--实例化option

  1. <script type="text/javascript">
  2. $().ready(function(){
  3. SELECT_LIST.getProjectSupType("queryProjectSupType", "${pd.queryProjectSupType}");
        })
  4. </script>

3.JS2--数据封装

  1. var SELECT_LIST = {
  2. getProjectSupType: function(targetId,selectValue){
  3. var url = 'dictionary/list/condition';
  4. var dicType = {};
  5. dicType.url = url;//ajax的url
  6. dicType.targetId = targetId;//即将实例化的select标签的id
  7. dicType.keyValue = "dicName";//从数据库获取的Json数据,将key为"dicName"的value赋值给option的value属性
  8. dicType.keyName = "dicName";//从数据库获取的Json数据,将key为"dicName"的value赋值给option的text属性
  9. dicType.condition = {codeId:8};//这是从传给数据库的数据筛选条件,因需求而异
  10. dicType.firstOption = "<option value=''>请选择分类</option>";//默认的第一个option标签的text属性
  11. dicType.selectedValue = selectValue;//标签实例化后,value等于selectValue的option,将默认选中
  12. ajaxGenerateSelect(dicType);//ajax获取数据,生成option数据
  13. }
  14. }

3.JS3--1.ajax获取数据,2.js生成option标签,并放入Select标签

  1. function ajaxGenerateSelect(selectObject){
  2. var url = selectObject.url;
  3. var method = selectObject.method ? selectObject.method : "POST";
  4. var keyValue = selectObject.keyValue ? selectObject.keyValue : "id";
  5. var keyName = selectObject.keyName ? selectObject.keyName : "name";
  6. var selectedValue = selectObject.selectedValue ? selectObject.selectedValue : null;
  7. var targetId = selectObject.targetId;
  8. var condition = selectObject.condition ? selectObject.condition : {};
  9. var afterHandle = selectObject.afterHandle;
  10. var formatter = selectObject.formatter;
  11. var firstOption = selectObject.firstOption;
  12. var ajaxObject = {};
  13. ajaxObject.url = url;
  14. ajaxObject.method = method;
  15. ajaxObject.data = JSON.stringify(condition);
  16. ajaxObject.success = function(result){
  17. var data = result.data;
  18. var html = "";
  19. if(firstOption){
  20. html = firstOption;
  21. }
  22. for(var i=0;i<data.length;i++){
  23. var selected = "";
  24. var dataItem = data[i];
  25. if(selectedValue == dataItem[keyValue]){
  26. selected = "selected";
  27. }
  28. var option = "<option value='#(value)' #(selected)>#(name)</option>";
  29. var nameValue = dataItem[keyName];
  30. if(formatter){
  31. nameValue = formatter(dataItem);
  32. }
  33. option = option.replace("#(value)", dataItem[keyValue]).
  34. replace("#(name)",nameValue).replace("#(selected)", selected);
  35. html += option;
  36. }
  37. $("#" + targetId).html('').append(html);
  38. if(afterHandle){
  39. afterHandle();
  40. }
  41. };
  42.  
  43. ajaxMethod(ajaxObject);
  44. }

项目总结09:select标签下封装option标签的更多相关文章

  1. qt 删除xml某个标签下所有子标签

    代码如下: QDomNodeList listFlowChart= doc.elementsByTagName("device"); QDomElement flowChart = ...

  2. jquery 条件搜索某个标签下的子标签

    $("li[name='"+name+"']").find("a[value='" + value + "']").pa ...

  3. jquery怎么获取当前标签下的子标签

    1.var num1=$("ul > a:eq(0)").attr("ID");2.var num2=$("ul").children ...

  4. select下拉框的探索(<option></option>标签中能嵌套使用其它标签吗)

      select标签大家应该经常用到,有个问题可能没怎么注意过, select标签里面的option标签可以嵌套其它标签吗,比如i,span标签等? 经本人测试,答案是:可以嵌套其它标签,但审查元素会 ...

  5. html select与option标签

    1.select 元素 select 元素可创建单选或多选菜单.<select> 元素中的 <option> 标签用于定义列表中的可用选项 常用属性如下: autofocus: ...

  6. 来吧,HTML5之基础标签(下)

    <dialog> 标签 定义对话框或窗口. <dialog> 标签是 HTML 5 的新标签.目前只有 Chrome 和 Safari 6 支持 <dialog>  ...

  7. HTML常用标签(下)

    HTML常用标签(下) 1. 表格标签 1.1 语法 <table> <!--table定义表格--> <tr> <!--tr定义表格中的行--> &l ...

  8. IE6 P标签下DIV无法inline-block

    IE6 P标签下的DIV标签无法inline-block,使其触发了hasLayout属性再用csshack 使其inline还是不行,始终要换行 解决:把div标签替换成非div标签,比如span等 ...

  9. 帝国cms灵动标签下常用标签

    这里简单整理下灵动标签下的常用标签 标题名称:<?=$bqr['title']?>  <?=esub($bqr[title],22)?> 限制字符22个 标题链接:<?= ...

随机推荐

  1. day25-面向对象结构与成员

    1.面向对象结构分析 如下面的图所示:面向对象整体大致分两块区域: 每个大区域又可以分为多个小部分: class A: name = 'Tom' # 静态变量(静态字段) __iphone = '13 ...

  2. elasticsearch-cluster shards

    elasticsearch-cluster: Windows下本地测试用 创建集群就要给集群起名,修改 elasticsearch.yml文件. cluster.name: es_test //集群名 ...

  3. 【Noip模拟 20161005】友好城市

    问题描述 小ww生活在美丽的ZZ国.ZZ国是一个有nn个城市的大国,城市之间有mm条单向公路(连 接城市ii.jj的公路只能从ii连到jj).城市ii.jj是友好城市当且仅当从城市ii能到达城市jj并 ...

  4. html 基础之a标签的属性target解析

    学习前端,有很多标签其实有很多不同的功能,但是用到的不多,所以就没有发现:当发现的时候,觉得很不可思议,有耳目一新的感觉.例如a 标签,之前只是知道,使用a标签,可以打开一个链接,然后访问一个新的页面 ...

  5. 使用exec函数将当前的信息输入到文件中

    先来看看exec函数: exec函数族     fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序.当进程调用一种exec函 ...

  6. Matplotlib中文乱码问题

    一.找到并修改matplotlibrc文件 进入Python安装目录下的Lib\site-packages\matplotlib\mpl-data目录,用记事本打开matplotlibrc文件:找到f ...

  7. 6.5 Shell 算术计算

    6.5 Shell Arithmetic shell允许在其内计算表达式,可以通过以下方式使用:((中,let和带-i选项的declare命令中. 只能计算固定长度的整数,而且不会检查溢出,除0可以捕 ...

  8. Tomcat 7集群基于redis的session共享设置

    经过测试之后,发现是tomcat中redis相关jar包问题,替换jar包后A产品运行正常. tomcat/lib目录下将commons-pool2-2.1.jar.jedis-2.1.0.jar.t ...

  9. swift中UIImageView的创建

    let imageView = UIImageView() let imageView1 = UIImageView(frame: CGRectMake(, , , )) // 创建出来的UIImag ...

  10. mysql-5.5.20预编译安装

    1.MYSQL数据库概念 1)MYSQL是一款关系型数据库系统,数据之间有互相联系,互相的关联和调用的. 2)MYSQL数据用于存储:WEB网站用户名和密码等 3)MYSQL存储数据库是通过二维表格形 ...