多个下拉列表-使用Jquery ztree 在同一个页面中出现多个input选择,每个input数据不同

问题描述

使用Jquery ztree 在同一个页面中出现多个input选择,每个input数据不同

使用一下dome代码,怎么在同一个页面中出现多个input选择,每个input下拉列表中的数据是不通的。

 <!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE> ZTREE DEMO - radio select menu</TITLE>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="../../../css/demo.css" type="text/css">
    <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
    <script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>
<!--    <script type="text/javascript" src="../../../js/jquery.ztree.exedit-3.5.js"></script>-->
    <SCRIPT type="text/javascript">
        <!--
        var setting = {
            check: {
                enable: true,
                chkStyle: "radio",
                radioType: "all"
            },
            view: {
                dblClickExpand: false
            },
            data: {
                simpleData: {
                    enable: true
                }
            },
            callback: {
                onClick: onClick,
                onCheck: onCheck
            }
        };

        var zNodes =[
            {id:1, pId:0, name:"北京"},
            {id:2, pId:0, name:"天津"},
            {id:3, pId:0, name:"上海"},
            {id:6, pId:0, name:"重庆"},
            {id:4, pId:0, name:"河北省", open:true, nocheck:true},
            {id:41, pId:4, name:"石家庄"},
            {id:42, pId:4, name:"保定"},
            {id:43, pId:4, name:"邯郸"},
            {id:44, pId:4, name:"承德"},
            {id:5, pId:0, name:"广东省", open:true, nocheck:true},
            {id:51, pId:5, name:"广州"},
            {id:52, pId:5, name:"深圳"},
            {id:53, pId:5, name:"东莞"},
            {id:54, pId:5, name:"佛山"},
            {id:6, pId:0, name:"福建省", open:true, nocheck:true},
            {id:61, pId:6, name:"福州"},
            {id:62, pId:6, name:"厦门"},
            {id:63, pId:6, name:"泉州"},
            {id:64, pId:6, name:"三明"}
         ];

        function onClick(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            zTree.checkNode(treeNode, !treeNode.checked, null, true);
            return false;
        }

        function onCheck(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
            nodes = zTree.getCheckedNodes(true),
            v = "";
            for (var i=0, l=nodes.length; i<l; i++) {
                v += nodes[i].name + ",";
            }
            if (v.length > 0 ) v = v.substring(0, v.length-1);
            var cityObj = $("#citySel");
            cityObj.attr("value", v);
        }

        function showMenu() {
            var cityObj = $("#citySel");
            var cityOffset = $("#citySel").offset();
            $("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");

            $("body").bind("mousedown", onBodyDown);
        }
        function hideMenu() {
            $("#menuContent").fadeOut("fast");
            $("body").unbind("mousedown", onBodyDown);
        }
        function onBodyDown(event) {
            if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
                hideMenu();
            }
        }

        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });
        //-->
    </SCRIPT>
    <style type="text/css">
    </style>
 </HEAD>

<BODY>
<h1>带 radio 的单选下拉菜单  -- zTree</h1>
<h6>[ 文件路径: super/select_menu_radio.html ]</h6>
<div class="content_wrap">
    <div class="zTreeDemoBackground left">
        <ul class="list">
            <li class="title">&nbsp;&nbsp;<span class="highlight_red">勾选 radio 或者 点击节点 进行选择</span></li>
            <li class="title">&nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu();" />
        &nbsp;<a id="menuBtn" href="#" onclick="showMenu(); return false;">select</a></li>
        </ul>
    </div>
    <div class="right">
        <ul class="info">
            <li class="title"><h2>实现方法说明</h2>
                <ul class="list">
                <li>用 radio 也可以轻松实现单选的下拉菜单</li>
                <li>单选其实没有必要使用 radio, 此 Demo 主要用于 和 其他下拉菜单进行对比</li>
                </ul>
            </li>
        </ul>
    </div>
</div>

<div id="menuContent" class="menuContent" style="display:none; position: absolute;">
    <ul id="treeDemo" class="ztree" style="margin-top:0; width:180px; height: 300px;"></ul>
</div>
</BODY>
</HTML>

解决方案

         function onClick(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj(currentTree);////////////
            zTree.checkNode(treeNode, !treeNode.checked, null, true);
            return false;
        }

        function hideMenu() {
            $("div[id='menuContent']").fadeOut("fast");/////////////id重复了,只能用属性选择器
            $("body").unbind("mousedown", onBodyDown);
        }
        function onBodyDown(event) {
            if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) {

                hideMenu();
            }
        }

        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
            $.fn.zTree.init($("#treeDemo1"), setting, zNodes1);
        });

         function onCheck(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj(currentTree),//////////////
            nodes = zTree.getCheckedNodes(true),
            v = "";
            for (var i=0, l=nodes.length; i<l; i++) {
                v += nodes[i].name + ",";
            }
            if (v.length > 0 ) v = v.substring(0, v.length-1);
            //var cityObj = $("#citySel");
            currentObj.attr("value", v);////////使用变量存储的input对象
        }
         var currentObj;////////////存储当前操作的input对象
         var currentTree;//记住当前用的那棵树
        function showMenu(o,treeId) {
            var cityObj = $(o);
            if (o.tagName == 'A') cityObj = cityObj.parent().find('input');//点击的是连接,获取和连接对应的input对象
            currentObj = cityObj///
            currentTree=treeId////
            var cityOffset = cityObj.offset();
            //
            $("#"+currentTree).parent().css({ left: cityOffset.left + "px", top: cityOffset.top + cityObj.outerHeight() + "px" }).slideDown("fast");

            var treeObj = $.fn.zTree.getZTreeObj(currentTree);
            var nodes = treeObj.getSelectedNodes();
            if (nodes.length > 0) treeObj.checkNode(nodes[0], false, null, false);//取消ztree的选择

            $("body").bind("mousedown", onBodyDown);
        }
             <ul class="list">
                <li class="title">&nbsp;&nbsp;<span class="highlight_red">勾选 radio 或者 点击节点 进行选择</span></li>
                <li class="title">
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this,'treeDemo');" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this, 'treeDemo'); return false;">select</a>
                </li>
                <li class="title"><!--使用第二棵树-->
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this, 'treeDemo1');" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this, 'treeDemo1'); return false;">select</a>
                </li>
                <li class="title">
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this, 'treeDemo');" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this, 'treeDemo'); return false;">select</a>
                </li>
            </ul>

解决方案二:

传递对象进函数里面,然后依据对象来进行操作

   <ul class="list">
                <li class="title">&nbsp;&nbsp;<span class="highlight_red">勾选 radio 或者 点击节点 进行选择</span></li>
                <li class="title">
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this);" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this); return false;">select</a>
                </li>
                <li class="title">
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this);" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this); return false;">select</a>
                </li>
                <li class="title">
                    &nbsp;&nbsp;Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu(this);" />
                    &nbsp;<a id="menuBtn" href="#" onclick="showMenu(this); return false;">select</a>
                </li>
            </ul>

js部分

     function onCheck(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
            nodes = zTree.getCheckedNodes(true),
            v = "";
            for (var i=0, l=nodes.length; i<l; i++) {
                v += nodes[i].name + ",";
            }
            if (v.length > 0 ) v = v.substring(0, v.length-1);
            //var cityObj = $("#citySel");
            currentObj.attr("value", v);////////使用变量存储的input对象
        }
        var currentObj;////////////存储当前操作的input对象
        function showMenu(o) {
            var cityObj = $(o);
            if (o.tagName == 'A') cityObj = cityObj.parent().find('input');//点击的是连接,获取和连接对应的input对象
            currentObj=cityObj///
            var cityOffset = cityObj.offset();
            $("#menuContent").css({ left: cityOffset.left + "px", top: cityOffset.top + cityObj.outerHeight() + "px" }).slideDown("fast");

            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var nodes = treeObj.getSelectedNodes();
            if (nodes.length > 0) treeObj.checkNode(nodes[0], false, null, false);//取消ztree的选择

            $("body").bind("mousedown", onBodyDown);
        }
时间: 2024-09-23 03:41:15

多个下拉列表-使用Jquery ztree 在同一个页面中出现多个input选择,每个input数据不同的相关文章

布局-多个页面 引用到同一个页面中并且保留原来的编辑 功能样式

问题描述 多个页面 引用到同一个页面中并且保留原来的编辑 功能样式 本人菜鸟可能标题问的不专业. 例如 A.B.C 三个独立的网页, 某个div 布局中有独立的编辑功能.然后在D网页中一侧悬浮有A.B.C三个网页的说略图,可以随意的把这三个网页拖拽到D页面中,并且在D页面中三个布局也是独立可以编辑的.能不能讲下 思路,当然越详细越好(拖拽方面可以用jquery实现 这知道,主要是怎么 引用到D页面中),谢谢! 解决方案 d中用iframe加载a,b,c,然后通过a,b,c通过parent得到d的

mvc4-MVC4在同一个页面中相同的三个按钮,用loaction.href跳转结果后两个404错误

问题描述 MVC4在同一个页面中相同的三个按钮,用loaction.href跳转结果后两个404错误 页面中相同的三个按钮,前一个单机跳转没问题,后两个出现404错误,我的视图里也有相应的页面,不是名称写错的问题,再控制器里添加一个新的视图a,运行a也是404错误,我初步判断问题应该是出现在控制器上面, 但是看代码发现不是这样,我现在找不到问题,有人知道这问题是出现在哪里么,或者提供一些别的url跳转方式让我试试 解决方案 你这描述能看出问题?你检查下你跳转路径和对应控制器是否在一个路径吧.

Jquery调用iframe父页面中的元素及方法_javascript技巧

一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 二.在iframe中调用父页面中定义的方法和变量: parent.method parent.value 三.实例 父页面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="IframeDemo._De

往数据库插入不了数据,而且很奇怪,同一个页面,能插入试卷的选择信息,但插入不了考试成绩?我看不出是什么原因,请高手帮帮忙!!!!

问题描述 往数据库插入不了数据,而且很奇怪,同一个页面,能插入试卷的选择信息,但插入不了考试成绩?我看不出是什么原因,请高手帮帮忙!!!!usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem

jquery mobile-jquery mbile手机页面中多个page的切换

问题描述 jquery mbile手机页面中多个page的切换 本人想在jquery mobile制作的手机页面(index.aspx)中实现这样的功能: 在一个 门店一 门店二 列表中做选择查看不同门店的销售情况. 那么选择项后接下来应该怎么做,是给每个选择项添加不同页面链接进行跳转呢(门店一),还是说可像普通页面一样,触发选择事件,然后异步加载数据呢. 像第一种情况该如何传参数给shop1.aspx页面 解决方案 jquery 状态切换及页面拼接----------------------

jquery ui-jquery UI 一个页面中怎么显示多个slider

问题描述 jquery UI 一个页面中怎么显示多个slider 后面的文本框是slider的值,每一个slider 的值互不影响 解决方案 直接放多个就好了,原本就互相不影响 <div class="slider"></div><input type="text" /> <div class="slider"></div><input type="text"

Jquery方式获取iframe页面中的 Dom元素_jquery

测试页面代码: 复制代码 代码如下: <html> <head> <title>jquery方式,访问iframe页面dom元素</title> <meta name="Author" content="孙勤波"> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> &l

asp.net同一个页面,两个表进行session传值

问题描述 asp.net同一个页面,两个表进行session传值 aspxgridview1选中一条数据后,根据这条数据中的两个字段QH,ZH,传值给aspxgridview2中的字段HM,使aspxgridview2显示QH,ZH之间的所有数据HM;比如aspxgridview1中一条数据QH是1,止号是100,当我选中这条数据后aspxgridview2就自动显示HM在1到100之间的所有数据,怎么用session实现??(两张表在同一个页面中) 解决方案 aspxgridview1做个选中

解决同一页面中两个iframe互相调用jquery,js函数的方法_jquery

这一个月又没更新博客,唉,懒癌又犯了,今天解决了一个问题,关于两个iframe互相调用jquery函数方法 a.html中有两个iframe,如下: <iframe width="100%" height="100%" name="left" scrolling="auto" frameborder="0" src="b.html" id="left">&