热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery下拉框动态生成

小妹不是很会这些请大家帮我看看这段代码我是想实现一个点按钮动态生成一个下拉框和一个textbox的效果下拉框的数据是从数据库中取出来的我从网上找了段动态生成下拉框的代码并自己进行了修改
小妹不是很会这些 请大家帮我看看这段代码
我是想实现一个点按钮 动态生成一个下拉框和一个textbox的效果 下拉框的数据是从数据库中取出来的
我从网上找了段动态生成下拉框的代码 并自己进行了修改 所以有点乱
我通过ajax已成功取到json数据 并赋值成功 效果已实现  但是我每点一下 它就要取一次数据 实在是太浪费 
所以我想它第一次取到值 就赋值给一个全局变量 然后每点一次时 就判断一下这个全局变量是不是不为空 为空的话 就不用通过ajax来取json了

全局变量是 jsondata

判断逻辑是
 if (jsondata == null) {
            $.getJSON("/Manager/GetCom", function (data) {
                jsondata = data;
                $.each(data, function (i, n) {
                    var opt = $("").text(n.name).val(n.name);
                })
            })
        }
        else { 
          $.each(jsondata, function (i, n) {
                    var opt = $("").text(n.name).val(n.name);
                    })
        }


但是我这样修改后 下拉框就显示不出来了!
试了firebug调试 发现执行顺序很乱 不知是怎么回事 

调试时的代码是:
  
  function onclick(event) {
        add();
    }
    function (data) {
        jsondata = data;
        $.each(data, function (i, n) {var opt = $("").text(n.name).val(n.name);});
    }
    function (i, n) {
        var opt = $("").text(n.name).val(n.name);
    }
    function add() {
        var table = document.getElementById("tbody");
        var tr = document.createElement("tr");
        table.appendChild(tr);
        var td1 = document.createElement("td");
        var td2 = document.createElement("td");
        tr.appendChild(td1);
        tr.appendChild(td2);
        var text = document.createElement("input");
        text.type = "text";
        text.name = "name";
        td2.appendChild(text);
        var dd = $("").attr("id", "ddl");
        if (jsondata == null) {
            $.getJSON("/Manager/GetCom", function (data) {jsondata = data;$.each(data, function (i, n) {var opt = $("").text(n.name).val(n.name);});});
        } else {
            $.each(jsondata, function (i, n) {var opt = $("").text(n.name).val(n.name);});
        }
        dd.append(opt);
        td1.appendChild(dd.get(0));
    }
    function del() {
        var trs = document.getElementsByTagName("tr");
        var tbody = document.getElementById("tbody");
        tbody.removeChild(trs[trs.length - 1]);
    }
    function onclick(event) {
        add();
    }


发现根本没有执行if(json==null){}else{}这段 调试的时候 这几行也是显示的灰的 不明白为什么会是灰的...

firebug中的错误信息是opt is not defined  (opt是下拉框的选项定义)



完整代码:
 


html
   

5 个解决方案

#1


不为空的话 就不用通过ajax来取json了


 又打错了

#2


第二次 jsondata 是什么了啊 ?

#3


引用 2 楼 zell419 的回复:
第二次 jsondata 是什么了啊 ?

第一次取的json的值

if (jsondata == null) {
            $.getJSON("/Manager/GetCom", function (data) {
                jsondata = data;
                $.each(data, function (i, n) {
                    var opt = $("").text(n.name).val(n.name);
                })
            })
        }

#4


哦 我知道了 。
dd.append(opt);
td1.appendChild(dd.get(0));
这两句啊 。
把opt 弄出来吧 。

#5


引用 4 楼 zell419 的回复:
哦 我知道了 。
dd.append(opt);
td1.appendChild(dd.get(0));
这两句啊 。
把opt 弄出来吧 。


啊  好囧的错误;!!! 丢人啊  谢谢了哈

推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
author-avatar
mobiledu2502877493
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有