<li>
        <input type="text" id="txt2" name="txt2" onfocus="showAndHide('List2','show');" readonly />
        <div class="Menu" id="List2">
          <ul>
            <li><input type="checkbox" value="三元里店" /><span>三元里店1</span></li>
            <li><input type="checkbox" value="a" /><span>a1</span></li>
            <li><input type="checkbox" value="a" /><span>a1</span></li>
            <li><input type="checkbox" value="a" /><span>a</span></li>
            <li><input type="checkbox" value="a" /><span>a</span></li>
            <li class="list-button"><input type="button" value="确定"  onclick="showAndHide('List2','hide');" /></li>
          </ul>
        </div>
      </li>
<script type="text/javascript">/*下拉*/
  function showAndHide(obj,types){
    var Layer=window.document.getElementById(obj);
    switch(types){
  case "show":
    Layer.style.display="block";
  break;
  case "hide":
    Layer.style.display="none";
  break;
}
  }
  function getValue(obj,str){
    var input=window.document.getElementById(obj);
input.value=str;
  }
  
//文本传值    window.onload = function(){
    var obox = document.getElementById("List2");
    var cboList = obox.getElementsByTagName("input");
    var oText = document.getElementById("txt2");
    document.getElementById("List2").onclick = function(e){
    var src = e?e.target:event.srcElement;
    if(src.tagName == "INPUT"){
    var values = [];
    for(var i=0;i<cboList.length;i++){
    if(cboList[i].checked){
    values.push(cboList[i].value);
    }
    }
    oText.value = values.join(",");
    }
    }
    }</script>
现在我只能把下拉input里的value值传给<input type="text" name="txt2">,怎么样把span里的值传过去呢?求解...

解决方案 »

  1.   

    遍历input的时候得到当前input的父级,,然后在父级里面遍历搜索span,然后得到span的innerhtml
      

  2.   

    <script type="text/javascript">/*下拉*/
      function showAndHide(obj,types){
        var Layer=window.document.getElementById(obj);
        switch(types){
      case "show":
        Layer.style.display="block";
      break;
      case "hide":
        Layer.style.display="none";
      break;
    }
      }
      function getValue(obj,str){
        var input=window.document.getElementById(obj);
    input.value=str;
      }
      
    //文本传值    window.onload = function(){
        var obox = document.getElementById("List2");
        var cboList = obox.getElementsByTagName("input");
        var oText = document.getElementById("txt2");
        document.getElementById("List2").onclick = function(e){
        var src = e?e.target:event.srcElement;
        if(src.tagName == "INPUT"){
        var values = [];
        for(var i=0;i<cboList.length;i++){
        if(cboList[i].checked){
        values.push(cboList[i].nextSibling.innerHTML);
        }
        }
        oText.value = values.join(",");
        }
        }
        }</script>我把楼主的js 稍微改了一下,看是否是楼主想要的效果    主要改的是这点 values.push(cboList[i].nextSibling.innerHTML);
      

  3.   

    将你的onload方法替换成我写的方法,已经测试过:
    $(function(){
    var obj,txtObj,txtPval;
    $("input[name=ck]").click(function(){
        obj=$(this);
        txtObj=$('#txt2');
    if(obj.attr('checked')!=undefined){
    var arry=[];
    if(txtObj.val()!=''){
     arry.push(txtObj.val());
    }
    txtPval=obj.parent().find('span').text();
    arry.push(txtPval);
    txtObj.val(arry.join(','));
    }
     });
    })
      

  4.   

    还要修改一下将每个type="checkbox"的都要添加name属性:name="ck"