根据参数显示类别(三级联动,需要JSON数据)

Scripts/Category.js

调用方法:

$(function () {

BindCategory();

//默认绑定文本框中的值

BindCategoryData($("#txtCategoryId").val());

})

绑定三级联动(详情见:http://www.cnblogs.com/haozhenjie819/p/3887279.html

function BindCategory() {

var $txtCategory = $("#txtCategoryId");

var _selectId = ["selBigClass", "selSmallClass", "selThreeClass"];

for (var i = 0; i < _selectId.length; i++) {

var select = document.createElement("select");

select.id = _selectId[i];

select.name = _selectId[i];

$txtCategory.parent().append(select);

}

var $selBigClass = $("#selBigClass");

var $selSmallClass = $("#selSmallClass");

var $selThreeClass = $("#selThreeClass");

$selSmallClass.hide();

$selThreeClass.hide();

$.getJSON("/Scripts/CategoryJson.js", function (json) {

var html = ['<option value="">请选择大类</option>'];

for (var key in json) {

if (json[key].pid == 0) {

html.push('<option value="' + json[key].id + '">' + json[key].name + '</option>');

}

}

//第一级类别

$selBigClass.empty().append(html.join('')).change(function () {

$txtCategory.val(this.value);

$selThreeClass.hide();

$selSmallClass.show();

var html = ['<option value="">请选择小类</option>'];

for (var data in json) {

if (json[data].pid == $("#selBigClass").val()) {

html.push('<option value="' + json[data].id + '">' + json[data].name + '</option>');

}

}

//第二级类别

$selSmallClass.empty().append(html.join('')).change(function () {

$txtCategory.val(this.value);

$selThreeClass.show();

var html = ['<option value="">请选择小类</option>'];

for (var data in json) {

if (json[data].pid == $selSmallClass.val()) {

html.push('<option value="' + json[data].id + '">' + json[data].name + '</option>');

}

}

//第三级类别

$selThreeClass.empty().append(html.join('')).change(function () {

$txtCategory.val(this.value);

});

//如果不存在第三级类别则隐藏第三级类别控件

if ($selThreeClass.get(0).options.length <= 1) {

$selThreeClass.hide();

return false;

}

});

//如果不存在第二级类别则隐藏第二级类别控件

if ($selSmallClass.get(0).options.length <= 1) {

$selSmallClass.hide();

return false;

}

});

});

};

根据参数显示默认值

var setBigClassTime;

//绑定数据

function BindCategoryData(CategoryId) {

if (document.getElementById("selBigClass") == null || document.getElementById("selBigClass").length <= 0)

setBigClassTime = setTimeout("BindCategoryData('" + CategoryId + "')", 200);

else

clearTimeout(setBigClassTime);

$.getJSON('/Scripts/CategoryJson.js', function (json) {

for (var key in json) {

if (json[key].id == CategoryId) {

json[key].id = CategoryId;

var str = json[key].itemvalue;

var _p = str.split("|")[2];

var _c = json[key].pid;

if (_p == _c) {

if (_p != "") {

$("#selBigClass").val(_p).change();

$("#selSmallClass").val(CategoryId);

}

else {

$("#selBigClass").val(CategoryId);

}

}

else {

$("#selBigClass").val(_p).change();

$("#selSmallClass").val(_c).change();

$("#selThreeClass").val(CategoryId).change();

}

}

}

});

}

Scripts/CategoryJson.js(如何生成json数据详见:http://www.cnblogs.com/haozhenjie819/p/3601676.html

[{ "id": 31, "name": "\u65b0\u95fb\u4e2d\u5fc3", "pid": 0, "itemvalue": "|0|" },

{ "id": 59, "name": "\u52a0\u76df\u5408\u4f5c", "pid": 0, "itemvalue": "|0|" },

{ "id": 65, "name": "\u4ea7\u54c1\u670d\u52a1", "pid": 0, "itemvalue": "|0|" },

{ "id": 60, "name": "\u52a0\u76df\u987b\u77e5", "pid": 59, "itemvalue": "|0|59|" },

{ "id": 61, "name": "\u52a0\u76df\u6d41\u7a0b", "pid": 59, "itemvalue": "|0|59|" },

{ "id": 62, "name": "\u52a0\u76df\u533a\u57df", "pid": 59, "itemvalue": "|0|59|" },

{ "id": 70, "name": "\u63a8\u8350\u670d\u52a1", "pid": 65, "itemvalue": "|0|65|" },

{ "id": 71, "name": "\u8ba1\u8d39\u65b9\u5f0f", "pid": 65, "itemvalue": "|0|65|" },

{ "id": 72, "name": "\u7528\u6237\u987b\u77e5", "pid": 65, "itemvalue": "|0|65|" },

{ "id": 73, "name": "\u7981\u5bc4\u8303\u56f4", "pid": 65, "itemvalue": "|0|65|" },

{ "id": 75, "name": "\u666e\u901a\u5feb\u9012", "pid": 70, "itemvalue": "|0|65|70|" },

{ "id": 76, "name": "\u7279\u79cd\u5feb\u4ef6", "pid": 70, "itemvalue": "|0|65|70|" },

{ "id": 77, "name": "\u9650\u65f6\u6d3e\u9001", "pid": 70, "itemvalue": "|0|65|70|" },

{ "id": 78, "name": "\u4ee3\u6536\u8d37\u6b3e", "pid": 70, "itemvalue": "|0|65|70|" },

{ "id": 79, "name": "\u4fdd\u4ef7\u670d\u52a1", "pid": 70, "itemvalue": "|0|65|70|" },

{ "id": 80, "name": "\u4ee3\u7b7e\u56de\u5355", "pid": 70, "itemvalue": "|0|65|70|"}]

web页面(给hidden赋值,类别编号为75)

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>三级联动</title>

<script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

<script src="/Scripts/Category.js" type="text/javascript"></script>

</head>

<body>

<form id="form1" runat="server">

<table>

<tr>

<td >新闻类别:</td>

<td > <input id="txtCategoryId" name="txtCategoryId" type="hidden" runat="server" value="75" /></td>

</tr>

</table>

</form>

</body>

</html>

效果图

涉及的知识点:【JavaScript split() 方法】返回值是一个字符串数组。

根据参数显示类别(三级联动,需要JSON数据)的更多相关文章

  1. Jquery select 三级联动 (需要JSON数据)

    Scripts/Category.js //Jquery三级类别联动 $(function () { BindCategory(); }) function BindCategory() { var ...

  2. 将省市县三级联动的json数据,转化为element-ui能用的格式,并使用

    var options=[]; var cities = { '北京': { '北京': ['东城区', '西城区', '崇文区', '宣武区', '朝阳区', '丰台区', '石景山区', '海淀区 ...

  3. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

  4. 省市县三级联动(jqurey+json)

    1.效果图 2.联动js /** * jquery.choosearea.js - 地区联动封装 */ ; (function ($) { var choosearea = function (opt ...

  5. mvc关于三级联动修改时数据回显

    在网上找了好久,都没有找到自己想要的那种效果,最后还是自己写出来了, 虽然方法有点笨. 这是Controller里 public ActionResult Edit(string id) { //查询 ...

  6. 基于jQuery的AJAX实现三级联动菜单

    最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录. 下面是嵌套js的html文件: <!DOCTYPE html> <html ...

  7. Java学习-059-Jsoup爬虫获取中国所有的三级行政区划数据(四),生成相应的 JSON 数据并输出

    还是直接上马,对应的源码如下所示: 生成的三级行政区划部分 JSON 数据如下所示:

  8. 在SQL 中生成JSON数据

    这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...

  9. FormData 数据转化为 json 数据

    两种方法 <!-- 实例:将 FormData 转化为 json --> <meta charset="utf-8"/> <form enctype= ...

随机推荐

  1. views 视图层

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  2. 有助提升编程的几个Python 技巧

    一行代码定义List 定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题. 下面是使用For循环创建列表和用一行代码创建列表的对比. x = [ ...

  3. 【MIT 6.824 】分布式系统 课程笔记(一)

    Lecture 02 Infrastructure: RPC & threads 一.多线程挑战 共享数据: 使用互斥信号量.或者避免共享 线程间协作: 使用channels 或者 waitg ...

  4. django使用pyecharts(4)----django加入echarts_增量更新

    四.Django 前后端分离_定时增量更新图表 1.安装 djangorestframework linux pip3 install djangorestframework windows pip ...

  5. Django模板语言中的Filters的使用方法

    Filters可以称为过滤器.下面我们简单介绍是如何使用他的. Filters的语法: {{ value|filter_name:参数 }} Django大概提供了六十个内置过滤器,下面我们简单介绍几 ...

  6. PAT(B) 1087 有多少不同的值(Java)规律

    题目链接:1087 有多少不同的值 (20 point(s)) 题目描述 当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取 ...

  7. WUSTOJ 1336: Lucky Boy(Java)博弈

    题目链接:1336: Lucky Boy 参考博客:LUCKY BOY 博弈--HandsomeHow Description Recently, Lur have a good luck. He i ...

  8. Android 7.0 之后相机/文件读写等权限获取方式改变,导致开启相机闪退

    在 Android 7.0 之前 Google 提供的动态申请权限的 API,可以调用相机拍照,访问SDcard等操作都只需要申请对应的权限,如下: <uses-permission andro ...

  9. Go语言学习笔记(8)——包和结构体

    包 —— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点.主函数应该存在main包中. 结构体: 通过 . 操作符访问结构体的各个成员! 1. 定义结构体类型person: type per ...

  10. Shiro授权及注解式开发

    目的: shiro授权 shiro注解式开发 Shiro授权 首先设计shiro权限表: 从图中我们也清晰的看出五张表之间的关系 ShiroUserMapper Set<String> g ...