弹出窗传值,该如何处理

弹出窗传值!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtm

弹出窗传值


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>练习弹出窗传值3</title>
<meta name="description" content="" />
</head>

<body>

<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
a{color:#5e5e5e;font-size:12px;text-decoration:none;}
a:hover{color:#3366cc;text-decoration:underline;}
/* nav_menu */
.nav_menu{width:560px;margin:100px auto;}
.nav_menu dl{background:url(images/verline.gif) repeat-y 4px 0;}
.nav_menu dl dt a{height:24px;line-height:24px;overflow:hidden;color:#3366cc;font-weight:800;}
.nav_menu dl dt a span{display:inline-block;width:13px;height:15px;overflow:hidden;float:left;margin:0 5px 0 0;}
.nav_menu dl dt a.minus span{background:url(images/showbtn.gif) no-repeat;}
.nav_menu dl dt a.plus span{background:url(images/hidebtn.gif) no-repeat;}
.nav_menu dl dd li{height:24px;line-height:24px;background:url(images/lineleft.gif) no-repeat 4px -6px;padding:0 0 0 18px}
</style>

<script type="text/javascript">
function getObject(objectId){
if(document.getElementById && document.getElementById(objectId)){
return document.getElementById(objectId);
}else if(document.all && document.all(objectId)){
return document.all(objectId);
}else if(document.layers && document.layers[objectId]){
return document.layers[objectId];
}else{
return false;
}
}

function showHide(e,objname){
var obj = getObject(objname);
if(obj.style.display == "none"){
obj.style.display = "block";
e.className="minus";
}else{
obj.style.display = "none";
e.className="plus";
}
}
</script>
<div class="crmnewbns">
    <ul class="bns-list">
      <li class="list-content">
        <input type="text" id="txt" name="txt"  readonly />
        <!--列表1-->
        <div class="nav_menu" id="list1"> 

<dl> 


<dt><a href="javascript:void(0);" class="minus" onclick="showHide(this,'items0');"><span></span>一级菜单1</a></dt> 
<dd id="items0"> 
<ul>
<li><a href="">二级菜单1</a></li>
<li><a href="">二级菜单2</a></li>
<li><a href="">二级菜单3</a></li>
<li><a href="">二级菜单4</a></li>
<li><a href="">二级菜单5</a></li>
<li><a href="">二级菜单6</a></li>
<li><a href="">二级菜单7</a></li>
</ul>
</dd> 
</dl> 
<dl> 
<dt><a href="javascript:void(0);" class="plus" onclick="showHide(this,'items1');"><span></span>一级菜单2</a></dt> 
<dd id="items1" style="display:none;"> 
<ul>
<li><a href="">二级菜单1</a></li>
<li><a href="">二级菜单2</a></li>
<li><a href="">二级菜单3</a></li>
<li><a href="">二级菜单4</a></li>
<li><a href="">二级菜单5</a></li>
<li><a href="">二级菜单6</a></li>
<li><a href="">二级菜单7</a></li>
</ul> 
</dd> 
</dl>
</div>
      </li>
     </ul>
    </div>
</body>
</html>


点击input弹出 <div class="nav_menu" id="list1">树型菜单,选择二级分类后把值传给input。
纠结了很久没现实
[解决办法]
1、确定你取到点击的值了没

2、$("#list1").attr("value",你取到的值) 这样的方式可以么?
[解决办法]
用纯js写
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<title>练习弹出窗传值3</title>
</head>
 
<body>
 
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
a{color:#5e5e5e;font-size:12px;text-decoration:none;}
a:hover{color:#3366cc;text-decoration:underline;}
/* nav_menu */
.nav_menu{width:560px;margin:100px auto;}
.nav_menu dl{background:url(images/verline.gif) repeat-y 4px 0;}
.nav_menu dl dt a{height:24px;line-height:24px;overflow:hidden;color:#3366cc;font-weight:800;}
.nav_menu dl dt a span{display:inline-block;width:13px;height:15px;overflow:hidden;float:left;margin:0 5px 0 0;}
.nav_menu dl dt a.minus span{background:url(images/showbtn.gif) no-repeat;}
.nav_menu dl dt a.plus span{background:url(images/hidebtn.gif) no-repeat;}
.nav_menu dl dd li{height:24px;line-height:24px;background:url(images/lineleft.gif) no-repeat 4px -6px;padding:0 0 0 18px}
</style>
 
<script type="text/javascript">
function getObject(objectId){
    if(document.getElementById && document.getElementById(objectId)){
        return document.getElementById(objectId);
    }else if(document.all && document.all(objectId)){
        return document.all(objectId);
    }else if(document.layers && document.layers[objectId]){
        return document.layers[objectId];
    }else{
        return false;
    }
}
 
function showHide(e,objname){
    var obj = getObject(objname);
    if(obj.style.display == "none"){
        obj.style.display = "block";
        e.className="minus";
    }else{
        obj.style.display = "none";
        e.className="plus";
    }
}

function doclickInput(){
var menu = getObject("list1");
if(menu.style.visibility != "visible"){
menu.style.visibility = "visible";
}
}

function doclickA(elem){
var txt = elem.innerHTML;
var input = getObject("txt");
input.value = txt;
}



return;

window.onload = function init(){
var arr = [getObject("items0"), getObject("items1")];

// 遍历两个dd里的所有a标签, 为其加上onclick事件
for(var i=0; i<arr.length; i++){
var dd = arr[i];
var as = dd.getElementsByTagName("a");
for(var j=0; j<as.length; j++){
as[j].onclick = function(){doclickA(this);}
}
}
}
</script>
<div class="crmnewbns">
    <ul class="bns-list">
      <li class="list-content">
        <input type="text" id="txt" name="txt" onClick="doclickInput()" />
        <!--列表1-->
        <div class="nav_menu" id="list1"> 
     
        <dl> 
            <dt><a href="javascript:void(0);" class="minus" onclick="showHide(this,'items0');"><span></span>一级菜单1</a></dt> 
            <dd id="items0"> 
                <ul>
                    <li><a href="#" onClick="doclickA(this)">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                    <li><a href="#">二级菜单4</a></li>
                    <li><a href="#">二级菜单5</a></li>
                    <li><a href="#">二级菜单6</a></li>
                    <li><a href="#">二级菜单7</a></li>
                </ul>


            </dd> 
        </dl> 
        <dl> 
            <dt><a href="javascript:void(0);" class="plus" onclick="showHide(this,'items1');"><span></span>一级菜单2</a></dt> 
            <dd id="items1" style="display:none;"> 
                <ul>
                    <li><a href="#">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                    <li><a href="#">二级菜单4</a></li>
                    <li><a href="#">二级菜单5</a></li>
                    <li><a href="#">二级菜单6</a></li>
                    <li><a href="#">二级菜单7</a></li>
                </ul> 
            </dd> 
        </dl>
    </div>
      </li>
     </ul>
    </div>    
</body>
</html>


1. 在<a>标签中添加事件, 用于实现input的赋值方法; (doclickA)方法
2. 注释掉return; window.onload时自动为所有的<a>标签添加事件. lz体会一下
[解决办法]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>练习弹出窗传值3</title>
</head>
 
<body>
 
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
a{color:#5e5e5e;font-size:12px;text-decoration:none;}
a:hover{color:#3366cc;text-decoration:underline;}
/* nav_menu */
.nav_menu{width:560px;margin:100px auto;}
.nav_menu dl{background:url(images/verline.gif) repeat-y 4px 0;}
.nav_menu dl dt a{height:24px;line-height:24px;overflow:hidden;color:#3366cc;font-weight:800;}
.nav_menu dl dt a span{display:inline-block;width:13px;height:15px;overflow:hidden;float:left;margin:0 5px 0 0;}
.nav_menu dl dt a.minus span{background:url(images/showbtn.gif) no-repeat;}
.nav_menu dl dt a.plus span{background:url(images/hidebtn.gif) no-repeat;}
.nav_menu dl dd li{height:24px;line-height:24px;background:url(images/lineleft.gif) no-repeat 4px -6px;padding:0 0 0 18px}
</style>
 
<script type="text/javascript">
function getObject(objectId){
    if(document.getElementById && document.getElementById(objectId)){
        return document.getElementById(objectId);
    }else if(document.all && document.all(objectId)){
        return document.all(objectId);
    }else if(document.layers && document.layers[objectId]){
        return document.layers[objectId];
    }else{
        return false;
    }
}
 
function showHide(e,objname){
    var obj = getObject(objname);
    if(obj.style.display == "none"){
        obj.style.display = "block";
        e.className="minus";
    }else{
        obj.style.display = "none";
        e.className="plus";
    }
}

function doclickInput(){
getObject("list1").style.display=getObject("list1").style.display=="none"?"":"none";
}

function doclickA(elem){
var txt = elem.innerHTML;
var input = getObject("txt");


input.value = txt;
document.getElementById("list1").style.display = "none";
}


window.onload = function init(){
var arr = [getObject("items0"), getObject("items1")];

// 遍历两个dd里的所有a标签, 为其加上onclick事件
for(var i=0; i<arr.length; i++){
var dd = arr[i];
var as = dd.getElementsByTagName("a");
for(var j=0; j<as.length; j++){
as[j].onclick = function(){doclickA(this);}
}
}
}
</script>
<div class="crmnewbns">
    <ul class="bns-list">
      <li class="list-content">
        <input type="text" id="txt" name="txt" onClick="doclickInput()" />
        <!--列表1-->
        <div class="nav_menu" id="list1"> 
     
        <dl> 
            <dt><a href="javascript:void(0);" class="minus" onclick="showHide(this,'items0');"><span></span>一级菜单1</a></dt> 
            <dd id="items0"> 
                <ul>
                    <li><a href="#" onClick="doclickA(this)">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                    <li><a href="#">二级菜单4</a></li>
                    <li><a href="#">二级菜单5</a></li>
                    <li><a href="#">二级菜单6</a></li>
                    <li><a href="#">二级菜单7</a></li>


                </ul>
            </dd> 
        </dl> 
        <dl> 
            <dt><a href="javascript:void(0);" class="plus" onclick="showHide(this,'items1');"><span></span>一级菜单2</a></dt> 
            <dd id="items1" style="display:none;"> 
                <ul>
                    <li><a href="#">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                    <li><a href="#">二级菜单4</a></li>
                    <li><a href="#">二级菜单5</a></li>
                    <li><a href="#">二级菜单6</a></li>
                    <li><a href="#">二级菜单7</a></li>
                </ul> 
            </dd> 
        </dl>
    </div>
      </li>
     </ul>
    </div>    
</body>
</html>