我在datalist的editTemplate中放了一个文本框,现在想在javascript中获取文本框中的值,可是用document.getElementById 方法不行,因为参数是textbox的ID,可是在HTML中textbox的ID会不停的变化,datalist中的每一条数据中的TEXTBOX的ID都不一样,所以无法调用,希望高人指点一下,该怎么解决

解决方案 »

  1.   


    那他们变化总有个规律吧
    <input type="text" onchange="get(this.value)"/>把值传过去
      

  2.   

    因为我是在editTemplate中放置的TextBox,设置好了ID以后运行的话查看页面的源代码,源代码中TextBox的ID是不一样的而JS只能调用HTML中的ID
    datalist中有很多条数据,每一条数据的编辑模板中的TEXTBOX的ID都不一样,比如第一条数据中的TEXTBOX的ID变成了DataList1_ctl00_txtAdminReply,第二条数据中的TEXTBOX的ID却变成了DataList1_ctl02_txtAdminReply,我在DATALIST中为TEXTBOX设置的ID是txtAdminReply,不知道该咋办
      

  3.   


    id是动的。可以根据name或自定义的属性来获取
      

  4.   

    生成到客户端后变成了
                                <textarea name="DataList1$ctl02$txtAdminReply" rows="2" cols="20" id="DataList1_ctl02_txtAdminReply" style="height:127px;width:288px;"></textarea>
    name也是动的,请问能用什么属性呢
      

  5.   

    遍历datalist的子元素.<Script>
    function getAll() {
    var o = document.getElementById("datalist的ID");
    var t="";
    for (var i = 0; i < o.length; i++) {
    if (f.elements[i].value != "") t+=f.elements[i].value;
    }
    alert(t);
    }
    //或者:
    function getAll() {
    var o = var ss = document.getElementById("datalist的ID").childNodes;
    var t="";
    for (var i = 0; i < o.length; i++) {
    if (o[i].value != "") t+=o[i].value;
    }
    alert(t);
    }
    </Script>
      

  6.   

    这个好像不行,因为getElementById获取的是HTML下的ID,而datalist在客户端的ID会不停的变化的