根据参数显示类别(三级联动,需要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. [转帖]java架构之路-(面试篇)JVM虚拟机面试大全

    java架构之路-(面试篇)JVM虚拟机面试大全 https://www.cnblogs.com/cxiaocai/p/11634918.html   下文连接比较多啊,都是我过整理的博客,很多答案都 ...

  2. Scrapy框架1——简单使用

    一.设置与编写 打开cmd,选择好路径 1.创建项目scrapy startproject projectname d:\爬虫\11.scrapy>scrapy startproject tes ...

  3. Python-20-异常处理

    一.什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止) 常用异常: AttributeError 试图访问一个对 ...

  4. 14 IF函数

    情景 某销售表,如果员工的销售额大于5000元,提成为10%,否则为8% IF函数 =IF(表达式,值1,值2) 判断表达式,如果表达式为真,显示值1,如果表达式为假,显示值2 示例

  5. shell 学习笔记4-shell内置变量命令

    一.shell 的一些内置命令 常用的一内部命令有:echo.eval.exec.export.read.shift 1.echo命令-在屏幕中输出信息 1)说明 格式:echo args #< ...

  6. java封装数据类型——Byte

    Byte 是基本类型byte的封装类型.与Integer类似,Byte也提供了很多相同的方法,如 decode.toString.intValue.floatValue等,而且很多方法还是直接类型转换 ...

  7. metasploit安卓木马

    metasploit---安卓木马入侵 (仅供学习使用,禁止非法使用) 1.生成木马程序 msfvenom -p android/meterpreter/reverse_tcp LHOST=本机ip ...

  8. canvas 绘制动态圆环进度条

    由于使用的是vue开发,所以就展示一下绘制函数好了,上图是效果图 drawMain(drawing_elem, percent, forecolor, bgcolor) { /* @drawing_e ...

  9. TensorFlow实现Softmax Regression识别手写数字

    本章已机器学习领域的Hello World任务----MNIST手写识别做为TensorFlow的开始.MNIST是一个非常简单的机器视觉数据集,是由几万张28像素*28像素的手写数字组成,这些图片只 ...

  10. 通过DB13备份SystemDB

    配置systemdb capital user name:SYSTEM save -back Save 现在可以通过DB13备份SystemDB Done. Congratulations!