0

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

我的客户端代码:

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 
4

2 回答 2

1

尝试这个:

 int value = Convert.toInt32(Request.Form["txtTime"]);
于 2012-08-05T17:50:28.680 回答
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>
于 2012-08-05T17:59:26.557 回答