现在项目要求在客户端做GridView控件的Javascript检查,要检查GridView中的TextBox的内容,请问下高手如何使用Javascipt得到Grid单元格的内容?

解决方案 »

  1.   

    function leave()
    {
    var txt = e.srcElement;
    if(txt == "hello")
    ...
    else
    ...
    }
      

  2.   

    使用JS遍历GridView里的TextBox,并判断.提交前调用JS方法
    <script type="text/javascript">
       function onClientClick()
       {
         
            var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
            for(var i=0; i <inputs.length; i++)
            {
                if(inputs[i].type=="text")
                {
                    inputs[i].value ...   //这是TextBox的Text值,根据你的情况进行验证 
                    //....
                }
            }
       }
         </script>
      

  3.   

    如果不能取所有的textbox控件,只能取特定的某列里的textbox控件呢,麻烦再次赐教哦
      

  4.   

    GridView在客户端是一个table,他的ID就上Gridview的ID。只要用js循环这个table就可以了,下面我给个例子:
    function setClf()
          {
                var table=document.getElementById("Table1");
                var tr=table.getElementsByTagName("tr");
                var sum=0;
                var pattem=/^\d+(\.\d+)?$/;
                for( i=1;i<tr.length;i++)
                {
                    var sum1;
                    var a,b,c;
                    if(pattem.test(tr[i].getElementsByTagName("td")[4].getElementsByTagName("input")[0].value))
                        a=parseFloat( tr[i].getElementsByTagName("td")[4].getElementsByTagName("input")[0].value );
                    else
                        a=0;
                    if(pattem.test(tr[i].getElementsByTagName("td")[5].getElementsByTagName("input")[0].value))
                        b=parseFloat( tr[i].getElementsByTagName("td")[5].getElementsByTagName("input")[0].value );
                    else
                        b=0;
                    if(pattem.test(tr[i].getElementsByTagName("td")[7].getElementsByTagName("input")[0].value))
                        c=parseFloat( tr[i].getElementsByTagName("td")[7].getElementsByTagName("input")[0].value );
                    else
                        c=0;
                    sum1=a*( b + c*b );//计算方法改变
                    tr[i].getElementsByTagName("td")[8].getElementsByTagName("input")[0].value = parseFloat(sum1).toFixed(2);
                    sum=sum+sum1;
                }
                document.getElementById("clf1").value=parseFloat(sum).toFixed(2);
          }遍历了Table1,其中使用了 正则来判断数据
      

  5.   

    上面是将 gridview第4,5,7列里textbox的值按一定规则计算得到的值赋给第8列的textbox(列从0开始)
      

  6.   

    如果要实现这种情况,建议Tr给上ID,在JS判断这种逻辑只取符合你条件的控件的值处理即可以了