2012-08-05 68 views
0

在我的ASP.NET表单中,我有一个文本框,使用JavaScript代码每10秒更改一次该值。文本框的初始值为10,每10秒钟事件发生5次。当我点击提交按钮并尝试访问myTextBox.Text属性时,我的值为10,而不是我的文本框中的当前值。有什么问题就在这里,为什么我不能看到写在我的文本框中<'的当前值ASP.NET文本框 - 文本属性

我的客户端代码:

var d = 0; 
    var interval = 0; 
    function initializeMe() { 
     d = document.getElementById("<%= time.ClientID %>").innerHTML; 
     interval = self.setInterval("clock()", 10000); 
    } 
    function clock() { 
     if (d > 0) { 
      document.getElementById("<%= time.ClientID %>").innerHTML = d; 
      document.getElementById("<%= txtTime.ClientID %>").value = d.toString(); 
      d = d - 1; 
     } 
     else { 

      d = "Message"; 
      document.getElementById("<%= vrijeme.ClientID %>").innerHTML = d; 
      document.getElementById("<%= txtVrijeme.ClientID %>").value = "0"; 
     } 
    } 



<form id="form1" runat="server"> 

    <div> 

     <asp:Label ID="time" runat="server"></asp:Label> 
     <asp:TextBox ID="txtTime" runat="server"></asp:TextBox> 
     <asp:Button ID="submit" runat="server" Text="Sumbmit" 
      onclick="sumbit_Click"/> 


    </div> 
</form> 

我的服务器代码

int value = 700 - Convert.ToInt16(txtTime.Text);//But here server reads wrong value 
+2

我们展示的代码请 – Shyju 2012-08-05 17:30:40

+1

@Shyju - 请使用请而不是请。 – Oded 2012-08-05 17:34:31

+0

@Oded:肯定:)... – Shyju 2012-08-05 17:35:03

回答

1

试试这个:

int value = Convert.toInt32(Request.Form["txtTime"]); 
+0

除非有特定原因,否则在执行WebForms时,您不需要访问Request.Form。在这个例子中,它绝对不是必需的 - 我的答案中的样本没有它就可以正常工作。 – Richard 2012-08-05 18:00:23

1

我在猜测你的网页上还有很多东西比你的网页还要多在这里坐。我用你发布的内容打了一个快速示例,它运行良好。我已经包括下面的完整样本 - 我建议你把它比作你找出什么不同:

<%@ Page Language="C#" AutoEventWireup="true" %> 

<script runat="server"> 

    protected void sumbit_Click(object sender, EventArgs e) 
    { 
     int value = 700 - Convert.ToInt16(txtTime.Text); 
     lblResult.Text = value.ToString(); 
    } 

</script> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="time" runat="server" Text="100"></asp:Label> 
     <asp:TextBox ID="txtTime" runat="server"></asp:TextBox> 
     <asp:Button ID="submit" runat="server" Text="Sumbmit" 
      OnClick="sumbit_Click" /> 

     <hr /> 
     Result: <asp:Label runat="server" ID="lblResult" /> 
    </div> 

    </form> 

    <script type="text/javascript"> 
     var d = 0; 
     var interval = 0; 

     function initializeMe() { 
      d = document.getElementById("<%= time.ClientID %>").innerHTML; 
      interval = self.setInterval(function() { clock(); }, 1000); 
     } 
     function clock() { 
      if (d > 0) { 
       document.getElementById("<%= time.ClientID %>").innerHTML = d; 
       document.getElementById("<%= txtTime.ClientID %>").value = d.toString(); 
       d = d - 1; 
      } 
     } 

     initializeMe(); 

    </script> 
</body> 
</html>