求助,js 获取gridview 行号总为0,checkbox单选

tragedyhomeland 2014-10-29 01:55:20
js代码如下:
    <script language="javascript">
function ChangeChk(e)
{
var Boxes = parseInt(e.parentNode.parentNode.rowIndex);
alert(Boxes);
for (i = 0; i < Boxes.cells.length; i++)
{
if (Boxes.cells[i].type == 'checkbox')
{
if (Boxes.cells[i].id == theBox.id)
{
Boxes.cells[i].checked = true;
}
else
{
elem[i].checked = false;
}
}
}
}
</script>


gridview中checkbox代码如下:
<td width="15%">
<asp:CheckBox ID="CheckBox5" runat="server" onclick="javascript:ChangeChk(this)"
Text="正确" />
<asp:CheckBox ID="CheckBox6" runat="server" Text="错误" onclick="javascript:ChangeChk(this)"/>
<asp:CheckBox ID="CheckBox7" runat="server" Visible="false"/>
</td>

想实现的功能是gridview中复选框单选。。。获取的rowIndex一直为0,求各位大神了,急用。。。。
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2014-10-29
  • 打赏
  • 举报
回复
rowIndex是数字,哪来的cells属性,cells是tr的属性。。获取tr再getElementsByTagName获取这行的input对象
    function ChangeChk(e) {
        var tr = e.parentNode.parentNode;
        var inputs = tr.getElementsByTagName('input');
        for (i = 0; i < Boxes.length; i++) {
            if (Boxes[i].type == 'checkbox') {
                if (Boxes[i].id == theBox.id) {
                    Boxes[i].checked = true;
                }
                else {
                    elem[i].checked = false;
                }
            }
        }
    }
  • 打赏
  • 举报
回复
如果是单选题,为什么不用单选框,而采用复选框? 就像在线答题系统,都是根据题型来判断,选项是单选还是多选,继而确定 采用radiobox 还是 checkbox
tragedyhomeland 2014-10-29
  • 打赏
  • 举报
回复
最终代码实现:
    <script language="javascript">
        function ChangeChk(e)
        {
              var index = parseInt(e.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.rowIndex);
              var elem=e.form.elements;
              for(i=0;i<elem.length;i++)
              {         
		if(elem[i].type=='checkbox')
	         {
			if(elem[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.rowIndex==index)
				elem[i].checked=false;
		  }
	      }
	      if (e.checked)
                    e.checked = false;
              else
                    e.checked = true;

        }
    </script>
tragedyhomeland 2014-10-29
  • 打赏
  • 举报
回复
gridview里面有很多行数据,每一行其实是一个判断题,我想实现的是这个判断题的checkbox只能单选。
如图所示,第7行正确错误都能选,我想用JS把它们改成单选。我已经获取到了checkbox的行数,但是不知道怎么改checkbox状态。
tragedyhomeland 2014-10-29
  • 打赏
  • 举报
回复
引用 4 楼 luxu001207 的回复:

function ChangeChk(obj){
var gridview=document.getElementById("gridview的ID");
var inputs=gridview.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
  if(inputs[i].type=="checkbox"){
  inputs[i].checked=false;
}
if(obj.checked)
obj.checked=false;
else
obj.checked=true;
}
}
问下第三行的input是什么呢?
Atai-Lu 2014-10-29
  • 打赏
  • 举报
回复

function ChangeChk(obj){
var gridview=document.getElementById("gridview的ID");
var inputs=gridview.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
  if(inputs[i].type=="checkbox"){
  inputs[i].checked=false;
}
if(obj.checked)
obj.checked=false;
else
obj.checked=true;
}
}
Atai-Lu 2014-10-29
  • 打赏
  • 举报
回复
function ChangeChk(obj){ var gridview=document.getElementById("gridview的ID"); var inputs=gridview.getElementsByTagName("input"); for(var i=0;i<inputs;i++){ if(inputs[i].type=="checkbox"){ inputs[i].checked=false; } if(obj.checked) obj.checked=false; else obj.checked=true; } } checkbox加上onclick事件 onclick="ChangeChk(this)" 用jquery更简单
Atai-Lu 2014-10-29
  • 打赏
  • 举报
回复
var Boxes = parseInt(e.parentNode.parentNode.rowIndex);         alert(Boxes);                for (i = 0; i < Boxes.cells.length; i++) 数字没cells这个属性吧? 你这段js代码,完全看不懂啊...
tragedyhomeland 2014-10-29
  • 打赏
  • 举报
回复
= =! 没人回答啊,现在提取了行,不知道怎么修改checkbox的值。。。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧