根据数据库数据 动态创建的TEXTBOX控件 不确定有多少个 我想用JS获取里面的值来计算合计 应该怎么做呢有什么解决办法?

解决方案 »

  1.   

    全部找出来就可以了.或者根据客户端的control个数遍历.
    类似于
    var sumVal =0
    var text = document.getElementById("controlname");
    if (text != null)
    {
       sumVal = sumVal + Number(text.Value);
    }
      

  2.   

    var o = document.getElementsByTagName("INPUT");
    var sum = 0;
    for(var i=0; i<o.length; i++){
      if(o.type == "text"){
        sum += parseFloat(o.value);
      }
    }
    alert(sum);大概是这样吧,根据楼主的具体情况而定,比如特定的控件ID等。
      

  3.   

    ID应该是不确定的吧 除了动态创建的textbox还有其他的呢 楼上的方法应该也不行吧
      

  4.   

    var o = document.getElementsByTagName("INPUT"); 
    var sum = 0; 
    for(var i=0; i <o.length; i++){ 
      if(o.type == "text"){ 
        sum += parseFloat(o.value); 
      } 

    alert(sum); 
      

  5.   

    因为TextBox在HTML里面解析出来的也是INPUT,
    所以最好使用ID来标志,比如说,TextBox1,TextBox2,TextBox3 ...
    否则的化,没有办法控制究竟哪些INPUT是TextBox解析出来的,
    哪些不是.
      

  6.   

    动态创建的TEXTBOX控件 
    =====
    这个还要通过id来判断,具体看你的程序,客户端没有办法判断那个是动态创建的TextBox
      

  7.   

    控件ID总有些规律吧。
    比如你的控件ID是TextBox1_1、TextBox1_2、…、TextBox1_n
    那么客户端取的时候
    var o = document.getElementsByTagName("INPUT"); 
    var sum = 0; 
    for(var i=0; i <o.length; i++){ 
      if(/^TextBox1_\d*$/ig.test(o.id)){ 
        sum += parseFloat(o.value); 
      } 

    alert(sum); 
      

  8.   

    TMD的上面错了。
    var o = document.getElementsByTagName("INPUT");  
    var sum = 0;  
    for(var i=0; i  <o.length; i++){  
      if(/^TextBox1_\d*$/ig.test(o[0].id)){  
        sum += parseFloat(o[0].value);  
      }  
    }  
    alert(sum);
      

  9.   

    只要你服务器端知道动态生成的textbox的个数,而且这些动态生成的textbox都有一定的规律性比如textbox0,textbox1等,你用<input type=hidden id="hCount"/>隐藏域保存textbox的个数,
    则客户端可以这样
    var count = parseInt(document.getElementById("hCount").value);
    for(int i=0;i<count;i++)
    {
        var textbox = document.getElementById("textbox" + i).value;
    }
      

  10.   

    就算不知道个数,也可以js搜寻页面中<input type=text>的id,只要id里包含textbox,那就是你动态生成的textbox,前提是你的<input>里面没有其他包含textbox的id
      

  11.   

    动态生成的和非动态的区分一下就行了可以通过name、id 都可以让它们以指定的后缀 结尾document.getElementByTagName 获得之后 在循环判断是否为动态添加的就可以了
      

  12.   

    1.动态循环的时候使textbox控件的值为textbox'+i+'
    2.循环获取值
    for(int i=1;i <=count;i++) 

        var textbox = document.getElementById("textbox" + i).value; 
    }