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

textbox value set in javascript is not avaliable in serverside page load event

本文关键字:加载 事件 设置 javascript 文本 服务器端      更新时间:2023-09-26

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

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

和This is my javascript function.

 <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>

第一个文本框值被完美地赋值。但是第二个文本框没有显示

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>

我用下面的方法解决我的问题。

如果你的文本框必须在客户端用JavaScript设置,

必须用HTML>输入(文本)

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

替换为:

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

然后在html source中将其更改为runat="server"

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

如果在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在ASP。净