如题!
文本框是服务器控件<asp:TextBox  ID="txtCent" runat="server" Width="51px"></asp:TextBox>
有个label。需求是比较txt的值和lab的值,我这样写貌似不对,麻烦高手给写个..        var Sub=document.getElementById('labSub').innerHTML;
        var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("txtCent"); 
        for(var i=0; i <inputs.length; i++) 
        { 
            if(inputs[i].type=="text") 
            { 
                var cent=inputs[i].value    
                  if(isNan(cent))
                {
                    alert('请填写数字!');
                    return false;
                } 
                if(cent>Sub)
                {
                    alert('您給的分值不能大于每题分值!');
                    return false;
                }
            } 
        } 

解决方案 »

  1.   

    http://www.cnblogs.com/chenou/articles/1116086.html
      

  2.   

    你尽量不要用for循环,在.net中有foreach这样的关键字(可能拼写稍有错误),这个可以解决你的问题,而且可以提高代码的执行效率
      

  3.   

    查看生成的html源代码,labSub和txtCent肯定不对,会是另外名字的呈现这种情况最好不用服务器控件
      

  4.   

    getElementsByTagName("input"); 括号中的input指的是什么啊?????
      

  5.   

    我用了服务器控件 在后台可以获取出它的值if (subjectID != "")
    {
        for (int i = 0; i < this.GridView4.Rows.Count; i++)
        {
            TextBox m = (TextBox)this.GridView4.Rows[i].FindControl("txtCent");
            Score += int.Parse(m.Text);
        }
    }不知用客户端控件在后台如何获取值??
      

  6.   

    <asp:TextBox  ID="txtCent" runat="server" Width="51px" name="txtCent"> </asp:TextBox> js方法:
    var el=document.getElementById("<%=gridview1.ClientId%>");
    var obj=el.getElementsByTagName("input");
    for(var i=0;i<obj.lenght;i++)
    {
       if(obj[i].type=="text" && obj[i].name="txtCent")
    {alert(obj[i].value);
    }}
      

  7.   

    var Sub=document.getElementById('labSub').innerHTML;
            var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input"); 
            for(var i=0; i <inputs.length; i++) 
            { 
                if(inputs[i].type=="text") 
                { 
                    var cent=inputs[i].value    
                      if(isNan(cent))
                    {
                        alert('请填写数字!');
                        return false;
                    } 
                    if(cent>Sub)
                    {
                        alert('您給的分值不能大于每题分值!');
                        return false;
                    }
                } 
            } 
      

  8.   

    var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input"); 
      

  9.   

    asp:TextBox生成的对应的html控件就是<input type="text"/>楼主自己要加强下html标签了,不要老使用服务器端控件啊~~
    document.getElementsByTagName("控件的标签")  ==》返回的是控件数组,就有相同标签的控件document.getElementsByTagName("输入控件的名称")  ==》返回的是控件数组,具有相同name属性值的输入控件--------上面这两个对其他控件也有此方法,下面的这个只有document对象有document.getElementById("控件在客户端生成的id")==》返回的是对应的这个id的控件,如果有多个控件id相同,返回的只是dom树中的第一个
      

  10.   


    //设置GridView里的所有文本框的值 
    //objGVID:GridView的ID
    function GetAllGridViewTxt(objGVID)
            {
                var allColl=document.getElementById(objChkID).all;
                var txtvalue=";";
                for(var i=0;i<chkColl.length;i++)
                { 
                    if(chkColl[i].type=="text"&&chkColl[i].length>0 )
                    {//alert(chkColl[i].value);
                        txtvalue+=chkColl[i].value+";";
                    }
                }
               return txtvalue.substr(0,txtvalue.length-1)
            }