如果利用JavaScript创建<Input>,页面回送后他的值依然保留?利用下面的JavaScript代码创建的<INPUT>,并对其赋值。
可是页面回送后,它的值就被清空了。
为什么呢?
如果把<input>利用HTML写出来。页面回送后就不会出现值为空的现象。 this.hidenInput = document.getElementById("XXX")
if ( ! this.hidenInput )
{
this.hidenInput = document.createElement("INPUT");
this.hidenInput.type="hidden";
this.hidenInput.id = "XXX";
this.hidenInput.runat="server"
document.getElementsByTagName("form").item(0).appendChild( this.hidenInput);
}

解决方案 »

  1.   

    因为服务器不知道多了这么个东西. 
    两次回发之前并没有任何的关系, 回发后, 客户端只剩下服务器端刚刚发来的内容, 
    正确的情形应该是你的控件也没有了, 不过你可能把这段代码放在load 里面了, 
    所以回发后控件被重新创建, 但是值就没有了. 
      

  2.   

    在页面文件名后加参数比如
    test.html
    提交后台页面为test.aspx   可以把提交页面设为test.aspx?data=值
    test.aspx页面转回的时候也加参数test.html?data=值
    然后用js读取  值
      

  3.   

    5楼说的也可以, 但是受限制, 因为url参数总不是个保险的地方, 而且有长度等问题, 如果确实需要这种功能, 在页面上放一个hiddenfield, 把你的值放进去, 表面看起来动态控件就没意义了, 但是你可以把这个hf 当客户端"session "用, 多个动态控件共享这一个空间, 你需要写一个能序列化和反序列化keyValue对的函数, 就可以把每个控件的值都存储起来随时检索.  如果只有一个动态控件的话, 我看你还是乖乖地把它直接写进html 算了!
      

  4.   

    hidenInput.value='<%=Requst.From["hidenInputId"]%>';