var _txtuserid =  document.getElementById("<%=txtuserid.ClientID%>");
   _txtuserid.valuejs中采用上面语句获取文本框值,在ie下成功
但在firefox下发生这种情况:打开页面时文本框记忆上次输入内容,清除后重新输入然后通过js取值,结果还是输入以前的
例如打开页面时候文本框显示“12345”,我重新输入abcde后取的值还是12345,这是怎么回事

解决方案 »

  1.   

    function getData()
    {
    var _txtuserid = document.getElementById("<%=txtuserid.ClientID%>");
     alert( _txtuserid.value);
    }<asp:Button OnClientClick="getData();return false;"
      

  2.   

    var _txtuserid = document.getElementById("<%=txtuserid.ClientID%>");
    如果这一句你不是放在一个函数里调用执行,
    而是直接写在页面里
    那就只会在页面加载时执行一次
    所以他获取的对象时加载时候的状态
    后面你直接获取值的话,就是开始的那个
      

  3.   

    没想到我的帖子里能见到孟兄
    实际情况就是这样,我每次打开页面,输入框中自动记录上次关闭前输入的值,无论我输什么得到的都是初始值,我再关闭页面后打开,记录的是我最后一次输入的值,这是在firefox下的现象,ie正常
      

  4.   


    <asp:TextBox id="txt1" runat="server"></asp:TextBox>
     var txtValue=document.getElementById("txt1").value;既然是在JS中获取直接取ID,像上面那样不更简单些吗?
      

  5.   

    是单独写的js函数,不是取不到值,是取的值不是当前输入而是打开页面时候自动记忆的那个,是不是跟firefox设置有关
      

  6.   

    这个输入窗口是通过blockui弹出的,会不会firefox和ie对此有差异
      

  7.   

    这是html代码:<div  id="login_box" style=" width: 600px;">
    <ul style=" margin:0px auto; padding:0; width:100; margin:10px; padding-top :10px;list-style-type:none ; float:left ; text-align:right  ">
    <li>用户名:</li>
    <li>密码:</li>
    </ul>
    <ul  style=" margin:0px auto; padding:0; width:100; margin:10px; padding-top :10px;list-style-type:none ; float:left   ">
    <li> <asp:TextBox ID="txtuserid"  runat="server" ></asp:TextBox>
    </li>
    <li> <asp:TextBox ID="txtpwd" runat="server" ></asp:TextBox></li>
       
    </ul>
    <ul  style=" clear:both; margin:0px auto; padding:0; width:100; list-style-type:none ; float:left   ">
    <li>      
        <asp:Button ID="btnsubmit" runat="server" Text="确定"   OnClientClick="btnlogin_onclick();return false;" /> </li>
    </ul>
        </div>这是js代码<script type="text/javascript">
        function btnlogin_onclick() {        var _txtuserid = document.getElementById("<%=txtuserid.ClientID%>");
            alert(_txtuserid.value);    }</script>
      

  8.   

    发现问题了,上面那个div如果通过blockui弹出层就是我说的现象
    如果这个div不做弹出特效在firefox下就没问题,郁闷
      

  9.   

    估计是id重复了吧?跟 blockui 没关系。我们也经常这样使用 blockui
      

  10.   

    id没重复,这个可以确定
    不用blockui弹出,在ie和firefox下取值都没问题,用了blockui,ie没问题,firefox取值错误
      

  11.   

    基本上没这种可能,注意其它方面问题
    看你的代码,应该会想到你的错误所在:你这个取值代码是在页面加载时已运行.
    也就说在页面打开时,你还没输入新值,值已取出来了.你换个方式来测试function x()
    {
    alert(document.getElementById("<%=txtuserid.ClientID%>"));
    }<input type="button" value="test" onclick="x()" />
      

  12.   

    本帖最后由 net_lover 于 2010-12-24 15:27:44 编辑
      

  13.   

    最后我在ascx中把弹出层放到updatepanel外就可以了,呵呵