在javascript中设置的文本框值在服务器端页面加载事件中不可用

时间:2013-02-27 05:27:37

标签: javascript asp.net

我有以下情况。我已经通过从服务器端调用JavaScript函数来设置文本框值。文本框值被完美地分配,但它不在服务器端显示为空白。 这是我的代码。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Page.ClientScript.RegisterStartupScript(Me.GetType(), "set", "setValue();", True)
        TextBox1.Text = txt.Text
    End If
End Sub

这是我的javascript函数。

 <script type="text/javascript">
    function setValue() {
        document.getElementById("<%=txt.ClientID  %>").value = "Hello World";
    }

</script>

这是我的标记

<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txt" runat="server">
        </asp:TextBox>
        <asp:TextBox ID="TextBox1" runat="server">
        </asp:TextBox>
        <asp:Button ID="btnClic" runat="server" Text="Click Me" />
    </div>
</form>

第一个texbox值被完美分配。但它没有在第二个文本框中显示。

3 个答案:

答案 0 :(得分:1)

代码中无法访问

txt.Text值,您可以使用下面的javascript代码来实现此目的。

<script type="text/javascript">
    function setValue() {

        document.getElementById("<%=txt.ClientID%>").value = "Hello World";
        document.getElementById("<%=TextBox1.ClientID%>").value = document.getElementById("<%=txt.ClientID%>").value;
    }

</script>

答案 1 :(得分:1)

我用波纹管方法解决了我的问题。

如果您必须使用JavaScript在客户端设置TextBox,

您必须将其替换为 HTML&gt;输入(文本)

<asp:TextBox ID="txt1" runat="server" ></asp:TextBox>

替换为:

<input id="txt1" type="text" runat="server" />

然后在html源代码中将其更改为 runat =“server”

现在您可以在客户端更改其文本,并在服务器端获取其值: txt1.Value

我希望有用。

答案 2 :(得分:0)

如果您要在javascript函数中指定它,则无法获得文本框的值。

试试这种方式。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
    TextBox1.Text = "Hi"
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "set", "setValue();", True)
    TextBox1.Text = txt.Text
End If
End Sub

它可能对你有所帮助。现在,您的文本框值将为“Hello World”。您必须在调用javascript函数之前指定一些值。

<强>更新

唯一的解决方案是您必须使用Jquery Ajax在服务器端使用文本框值。

使用此链接供您参考。 Jquery Ajax in ASP.Net