首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

input传值有关问题

2013-07-21 
input传值问题liinput typetext idtxt2 nametxt2 onfocusshowAndHide(List2,show) re

input传值问题


<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里的值传过去呢?求解...
[解决办法]
遍历input的时候得到当前input的父级,,然后在父级里面遍历搜索span,然后得到span的innerhtml
[解决办法]
<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);
[解决办法]
将你的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(','));
}
 });
})

热点排行