Json 下拉列表

2024-03-09

当我点击部门安装主题时,当我点击主题时要安装的服务。但当我点击服务时却没有看到问题。我认为对json的描述不准确。你能帮我解决这个问题吗?谢谢。 我的 Jquery 代码;

/* <![CDATA[ */

(function($) {

$.fn.changeType = function(){

    var data = [
        {
        "department": "IT",
        "subject": [
                {"title":"Programmer",
                        "services" :[
                        {"name":"example1"},
                        {"name":"example2"}
                                  ]

                },
                {"title":"Solutions Architect"},
                {"title":"Database Developer"}
                ]
        },
        {"department": "Accounting",
        "subject": [
                {"title":"Accountant"},
                {"title":"Payroll Officer"},
                {"title":"Accounts Clerk"},
                {"title":"Analyst"},
                {"title":"Financial Controller"}
                ]
        },
        {
        "department": "HR",
        "subject": [
                {"title":"Recruitment Consultant"},
                {"title":"Change Management"},
                {"title":"Industrial Relations"}
                ]
        },
        {
        "department": "Marketing",
        "subject": [
                {"title":"Market Researcher"},
                {"title":"Marketing Manager"},
                {"title":"Marketing Co-ordinator"}
                ]
        }
        ]

        var options_departments = '<option>Select<\/option>';
        $.each(data, function(i,d){
            options_departments += '<option value="' + d.department + '">' + d.department + '<\/option>';
        });
        $("select#departments", this).html(options_departments);

        $("select#departments", this).change(function(){
            var index = $(this).get(0).selectedIndex;
            var d = data[index-1];  // -1 because index 0 is for empty 'Select' option
            var options = '';
            if (index > 0) {
                $.each(d.subject, function(i,j){
                            options += '<option value="' + j.title + '">' + j.title + '<\/option>';
                });
            } else {
                options += '<option>Select<\/option>';
            }
            $("select#subject").html(options);
        })
};


        $("select#subject", this).change(function(){
            var index = $(this).get(0).selectedIndex;
            var j = data[index-1];  // -1 because index 0 is for empty 'Select' option
            var options = '';
            if (index > 0) {
                $.each(j.services, function(i,b){
                            options += '<option value="' + b.name + '">' + b.name + '<\/option>';
                });
            } else {
                options += '<option>Select<\/option>';
            }
            $("select#services").html(options);
        })




})(jQuery);

$(document).ready(function() {
    $("form#search").changeType();
});

/* ]]> */

我的html代码;

<form id="search" action="" name="search">
    <select name="departments" id="departments">
        <option>Select</option>
    </select>

    <select name="subject" id="subject">
        <option>Select</option>
    </select>

    <select name="services" id="services">
        <option>Select</option>
    </select>

</form>

我编辑了你的代码,现在它可以工作了(通过在小提琴中选择第一个“IT”然后选择“程序员”来检查它)。当然,如果没有“服务”,则第三个选择中不会显示任何内容。 您应该向其添加一些逻辑,以便仅当存在与您的主题相关的服务时才显示第三个选择

(function($) {


    var data = [
        {
        "department": "IT",
        "subject": [
            {
            "title": "Programmer",
            "services": [
                {
                "name": "example1"},
            {
                "name": "example2"}
                          ]

            },
        {
            "title": "Solutions Architect"},
        {
            "title": "Database Developer"}
        ]},
    {
        "department": "Accounting",
        "subject": [
            {
            "title": "Accountant"},
        {
            "title": "Payroll Officer"},
        {
            "title": "Accounts Clerk"},
        {
            "title": "Analyst"},
        {
            "title": "Financial Controller"}
        ]},
    {
        "department": "HR",
        "subject": [
            {
            "title": "Recruitment Consultant"},
        {
            "title": "Change Management"},
        {
            "title": "Industrial Relations"}
        ]},
    {
        "department": "Marketing",
        "subject": [
            {
            "title": "Market Researcher"},
        {
            "title": "Marketing Manager"},
        {
            "title": "Marketing Co-ordinator"}
        ]}
    ]
    var selectedDepartment, selectedSubject;

    $.fn.changeType = function() {

        var options_departments = '<option>Select<\/option>';
        $.each(data, function(i, d) {
            options_departments += '<option value="' + d.department + '">' + d.department + '<\/option>';
        });
        $("select#departments", this).html(options_departments);

        $("select#departments").change(function() {
            var index = $(this).get(0).selectedIndex;

            var d = data[index - 1]; // -1 because index 0 is for empty 'Select' option
            selectedDepartment = d;
            var options = '';
            if (index > 0) {
                options += '<option>Select<\/option>';
                $.each(d.subject, function(i, j) {
                    options += '<option value="' + j.title + '">' + j.title + '<\/option>';
                });
            } else {
                options += '<option>Select<\/option>';
            }
            $("select#subject").html(options);
        })
    };


    $("select#subject").change(function() {
        var index = $(this).get(0).selectedIndex;
        selectedSubject = selectedDepartment.subject[index -1];
        var options = '';
        if (index > 0) {
            $.each(selectedSubject.services, function(i, b) {
                options += '<option value="' + b.name + '">' + b.name + '<\/option>';
            });
        } else {
            options += '<option>Select<\/option>';
        }
        $("select#services").html(options);
    })




})(jQuery);

$(document).ready(function() {
    $("form#search").changeType();
});

在这里小提琴:

http://jsfiddle.net/fF38L/ http://jsfiddle.net/fF38L/

编辑 - 要使其在 IE8 上工作,请取消 console.log()

http://jsfiddle.net/fF38L/1/ http://jsfiddle.net/fF38L/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Json 下拉列表 的相关文章

  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML
  • 如何在平面级别将 JsValue 合并到 JsObject

    我有两个从案例类创建的 JsValue 即书籍和书籍详细信息 val bookJson Json tojson Book val bookDetailJson Json tojson BookDetail 格式为 Book id 1 nam
  • 使用 JQuery 闪烁图像

    是否可以使用 JQuery 使图像闪烁 我需要闪烁具有特定类别的某些图像 它应该在 IE 和 Firefox 中都可以工作 像这样的事情 function blink time interval var timer window setIn
  • 如何将两个json对象键的值相加? [复制]

    这个问题在这里已经有答案了 bills refNo 17 billDate 1 apr 2016 dueDate 30 apr 2016 pendingAmount 4500 overdueDays 28 refNo 20 billDate
  • 所选项目的值[重复]

    这个问题在这里已经有答案了 我正在使用一个
  • jquery“动画”变量值

    我需要用jquery 动画 一个变量 Example 变量值为 1 5 秒后该值应为 10 应该是 平稳 增加 希望你明白我的意思 谢谢你 try someValue 0 animate someValue 10 duration 5000
  • Django 序列化器与rest_framework 序列化器

    有什么区别Django serializers vs rest framework serializers 我制作了一个 Web 应用程序 我希望 API 成为项目创建的主应用程序的一部分 不为 API 功能创建单独的应用程序 我需要为 D
  • 如何使用 jQuery mobile 确保动态 DOM 元素具有正确的 css

    我正在使用 jQuery mobile 构建一个移动应用程序 我尝试动态添加一些输入 但是 jQuery 移动样式未添加到动态创建的输入中 我创建了一个简单的应用程序 http jsfiddle net jGhqS http jsfiddl
  • 如何将具有固定模式的值数组反序列化为强类型数据类?

    我在找出一种干净的 尽可能 方法来以特定格式反序列化某些 JSON 数据时遇到了一些麻烦 我想将数据反序列化为强类型数据对象类 对于具体细节非常灵活 以下是数据的示例 timestamp 1473730993 total players 9
  • LazyAdapter 上的 TextView 显示错误数据

    我已经基于此成功使用 ListView 和 LazyAdapter 构建了一个应用程序link https stackoverflow com questions 541966 android how do i do a lazy load
  • 从 jquery CLEditor 获取内容

    如何获取我所写入的内容数据CLEditor http premiumsoftware net cleditor 使用jquery keyup 使用 CLEditor 不是更有意义吗 change事件 来自文档 http premiumsof
  • 由于内容安全策略指令,扩展程序拒绝加载脚本

    以下是我的 HTML 代码 Scripts HTML
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • RestKit:带有数组的动态嵌套属性

    我正在努力寻找一种将一些 JSON 映射到 RestKit 的方法 这是我正在查看的示例 results Test1 id 1 name Test 1 here language English type Test1 Test2 id 3
  • 元素上的 jQuery touchSwipe 事件阻止滚动

    我有一些清单div元素垂直排序 使用jQuery TouchSwipe 插件 https github com mattbryson TouchSwipe Jquery Plugin添加了滑动事件来捕获左右滑动 想法是通过向左或向右滑动来从
  • JavaScript 将 NULL 转换为 0

    我正在使用 jQuery 来获取元素的高度 但如果该元素不存在 以下代码将返回 NULL height menu li active ul height returns integer or null 这是一种跨浏览器安全的方法 可以使用以
  • JavaScript 中的自定义“确认”对话框?

    我一直在开发一个使用自定义 模式对话框 的 ASP net 项目 我在这里使用吓人引号 因为我知道 模式对话框 只是我的 html 文档中的一个 div 它被设置为出现在文档其余部分的 顶部 而不是真正意义上的模式对话框 在网站的许多部分
  • 从 JSON 在 Devise 中创建用户

    我正在致力于将运行 Devise 的 Rails 3 1 应用程序与我的 iOS 应用程序集成以进行用户身份验证 我希望用户能够从应用程序注册 然后我可以存储这些凭据以便稍后登录 使用 RestKit 我这样做 IBAction regis
  • JavaScript 不是 DOM 的一部分吗?

    为什么即使从 DOM 中删除用于创建脚本的代码 脚本仍然可以运行 我遇到了一种情况 我想阻止损坏的脚本运行 查看我的帖子 https stackoverflow com questions 2685581 is there a way to
  • 如何通过 jQuery onblur 提交表单

    所以我尝试通过 jQuery onblur 提交表单 即一旦焦点离开密码字段 表单就会通过 jQuery 提交 有类似的问题 但这不是我要找的 我尝试使用 document getElementById 但它不起作用 任何帮助表示赞赏 提前

随机推荐

  • 在ocaml中编写多行函数

    我无法理解如何在 ocaml 中编写函数 因为我只编写了不需要用 分隔的多行的递归函数 我正在尝试创建一个函数 给定一个整数 n 返回一个充满零且对角线上只有一个的矩阵 因此大小为 n 的单位矩阵 我是函数式编程和 ocaml 的新手 所以
  • Flutter - 在 Android 上访问隐藏方法 Lsun/misc/Unsafe 错误

    我收到 Flutter 项目的错误 我将开始一一停用插件 并希望找出其中之一是否导致了问题 在那之前 我会将其留在这里 以防有人提出建议 Accessing hidden method Lsun misc Unsafe gt putObje
  • PowerShell:带有 ConvertTo-XML 输出的自定义属性 XML 标签

    我正在 PowerShell 中创建一个新对象 使用哈希表来设置属性值 然后我想使用 ConvertTo XML 方法将对象导出为 XML 格式 hash Processor Intel Disk 500GB Server ABC Seri
  • 如何使用 opencv python 将黑色更改为红色

    你怎么能用Python做到这一点 我在这条线上遇到了问题 img rgb Set mask cv2 Scalar 0 0 255 这是代码 import numpy as np import imutils import cv2 img r
  • 在 C 中将匿名结构作为参数传递

    我有以下 c 行 为了可读性而添加回车符 它们不在代码中 define i2c write slave addr reg addr len data ptr twi master write MPU TWI addr reg addr ad
  • 如何移动文件?

    我正在针对 SourceForge SVN 存储库使用 TortoiseSVN 我想将文件从一个文件夹移动到另一个文件夹以维护其修订历史记录 这可能吗 如果是这样 你会怎么做 我当前的策略是将文件复制到新文件夹中并将其签入 然后从当前文件夹
  • 优化 S3 下载大量小文件

    我目前使用转账管理器 https docs aws amazon com AWSJavaSDK latest javadoc com amazonaws services s3 transfer TransferManager html从
  • AJAX 将不带表单的 ValidateAntiForgeryToken 发布到 MVC 操作方法

    我一直在寻找如何在 SO 上执行此操作的示例 据我所知 我已经尝试了所有我能找到的示例 但到目前为止没有成功 我尝试根据我的场景更改一些实现 但到目前为止也失败了 我的页面上有这个 layout cshtml 所以我总是有一个可用的令牌
  • Android 设计支持库可扩展浮动操作按钮 (FAB) 菜单

    现在Android设计支持库已经出来了 有谁知道如何用它实现扩展的Fab菜单 就像Inbox App上的fab一样 应该看起来像这样 获得了一种更好的方法来实现动画 FAB 菜单 而无需使用任何库或为动画编写大量 xml 代码 希望这对将来
  • insertUI 中的 R 闪亮动态 UI

    我有一个闪亮的应用程序 我想使用操作按钮添加 UI 元素 然后让插入的 ui 成为动态的 这是我当前的 ui 文件 library shiny shinyUI fluidPage div id placeholder actionButto
  • MySQL 与 JSON - 为什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 vbscript 从本地驱动器获取文件夹列表

    我想从计算机中删除所有文档 doc 文件 因为我知道如何从文件夹中获取子文件夹列表 但不知道如何从根目录中获取文件夹列表 Ex C subfoldersInFolder folder subFolder 给出文件夹的所有子文件夹 但据说我想
  • 熊猫显示所有行的组总和[重复]

    这个问题在这里已经有答案了 给定以下数据框 col a col b tosum b 5 b 5 b 1 c 6 c 3 a 2 a 2 我想显示所有行上每个 col 组的总和 如下所示 col a col b tosum group sum
  • 图像(Blob)在浏览器中仅显示一次

    我正在使用 Symfony2 和 Twig 在实体类中 ORM Column name photo type blob nullable true private photo public function displayPhoto ret
  • 绑定元函数:接受类型和模板模板参数(接受任何内容)

    我正在尝试写一个Bind将模板参数绑定到某些内容的元编程模板帮助器元函数 我有一个简单模板元函数的工作实现 template
  • 如何让 SSL 在 pip3 中工作?

    Python 3 6 5 从源代码构建并与 Python 2 7 5 一起安装 python3但是打开 python 终端pip3无法安装任何带有 SSL 错误的软件包 root servername openssl OpenSSL 1 1
  • 如何在 Python 中向旧的 CSV 文件追加新行?

    我正在尝试向旧的 CSV 文件添加新行 基本上 每次运行 Python 脚本时它都会更新 现在 我将旧的 CSV 行值存储在列表中 然后删除 CSV 文件并使用新的列表值再次创建它 我想知道是否有更好的方法可以做到这一点 with open
  • 如何列出 FTP 连接的目录内容

    我找不到这方面的教程 在 VB NET 中我想要执行如下命令 Dim array1 as string ListFilesInFolder www example com images 我知道这可能不会那么简单 但是有人可以给我指点教程或其
  • MongoDB C# 驱动程序覆盖字符串的默认值从 null 到 string.empty

    使用 10gen mondgo db c 驱动程序 我有以下课程 BsonId public ObjectId Id get set public int AttemptId get set public int UserId get se
  • Json 下拉列表

    当我点击部门安装主题时 当我点击主题时要安装的服务 但当我点击服务时却没有看到问题 我认为对json的描述不准确 你能帮我解决这个问题吗 谢谢 我的 Jquery 代码