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

获取选中的checkbox中的值解决办法

2013-12-26 
获取选中的checkbox中的值checkbox在table中,我用下面的方式展现在页面上table bgcolor#000000tr bg

获取选中的checkbox中的值
checkbox在table中,我用下面的方式展现在页面上
<table bgcolor="#000000">
          <tr bgcolor="#FFFFFF""><td ></td>
          <td bgcolor="#FFFFFF">用户名</td><td>性别</td><td>手机</td><td>email</td><td>所属地区</td>
          <td>生日</td><td>爱好</td><td>住址</td><td>简介</td></tr>
          
          <c:forEach items="${list}" var="rst" varStatus="status">
             <tr bgcolor="#FFFFFF">             
                <td><input type="checkbox" id="userid" value="${rst.username }+${status.index}"/></td>
                <td>${rst.username }${status.index}</td>
                <td>${rst.sex }</td>
                <td>${rst.mobile }</td>
                <td>${rst.email }</td>
                <td>${rst.area }</td>
                <td>${rst.birthday }</td>
                <td>${rst.hobby }</td>
                <td>${rst.address }</td>
                <td>${rst.introduce }</td>
          </tr>
          </c:forEach>
          
       </table>
现在就是想要做到:当我选择一条数据后,单击按钮,能得到选择的那条数据,选择两条,能得到两条数据,依次类推,有谁知道方法吗
[解决办法]


<table bgcolor="#000000" id="tb">
          <tr bgcolor="#FFFFFF""><td ></td>
          <td bgcolor="#FFFFFF">用户名</td><td>性别</td><td>手机</td><td>email</td><td>所属地区</td>
          <td>生日</td><td>爱好</td><td>住址</td><td>简介</td></tr>
          
          <c:forEach items="${list}" var="rst" varStatus="status">
             <tr bgcolor="#FFFFFF">             
                <td><input type="checkbox" id="userid" value="${rst.username }+${status.index}"/></td>
                <td>${rst.username }${status.index}</td>
                <td>${rst.sex }</td>
                <td>${rst.mobile }</td>
                <td>${rst.email }</td>
                <td>${rst.area }</td>
                <td>${rst.birthday }</td>
                <td>${rst.hobby }</td>
                <td>${rst.address }</td>


                <td>${rst.introduce }</td>
          </tr>
          </c:forEach>
          
       </table>
       <input type="button" value="获取勾选的数据" onclick="getRows()" />
<script>
    function getRows() {
        var cbs = document.getElementById('tb').getElementsByTagName('input'), rows = [], cells;
        for (var i = 0; i < cbs.length; i++)
            if (cbs[i].checked) {
                cells = cbs[i].parentNode.parentNode.cells;
                rows[rows.length] = { 用户名: cells[1].innerHTML, 性别: cells[2].innerHTML, 手机: cells[3].innerHTML, email: cells[4].innerHTML, 所属地区: cells[5].innerHTML, 生日: cells[6].innerHTML, 爱好: cells[7].innerHTML, 住址: cells[8].innerHTML, 简介: cells[9].innerHTML }
            }


        var item;
        for (i = 0; i < rows.length; i++) {
            item = [];
            for (k in rows[i]) item[item.length] = k + ':' + rows[i][k];
            alert(item.join('\n'));

        }
    }
</script>


[解决办法]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<select><option value="1">1</option><option value="2">2</option></select>
<script>
    $("option[value='2']").attr('selected', true);
</script>


没问题啊。高版本的jquery(1.5+)用prop试试,好像attr和prop设置的属性有有点区别,没研究过1.5+的
[解决办法]
你数据还没有返回吧。。是不是用ajax异步加载的,设置选中的代码要放到success回调中
[解决办法]
浏览器调试 看看。F12
[解决办法]
publicLoad("city","getCity.action",qy[0]);
    alert(qy[1]);
    $("#city option[value='"+qy[1]+"']").attr("selected", true);

你红色那句是用ajax异步初始化city的是吧,这样你发送ajax会没有返回就已经执行到蓝色那句,所以没有效果

中间加alert就会挂起蓝色语句的执行,但是不会打断ajax的执行,你点击确定后ajax可能已经返回初始化好city了,所以有效果

[解决办法]
放到你publicLoad函数中初始化完option后执行,多增加一个初始化的值的参数
[解决办法]
publicLoad("city","getCity.action",qy[0],qy[1]);
  //  alert(qy[1]);
  //  $("#city option[value='"+qy[1]+"']").attr("selected", true);


function publicLoad(id,url,value,initvalue){
//其他代码代码
$.ajax({
//.....
success:function(){
$("#'+id+' option[value='"+initvalue+"']").attr("selected", true);

}
})
}

热点排行