0

我有以下情况。我通过从服务器端调用 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

这是我的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 值被完美分配。但它没有显示在第二个文本框中。

4

3 回答 3

1

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

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

您必须将其替换为HTML > Input(Text)

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

用。。。来代替:

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

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

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

我希望有用。

于 2015-01-12T16:22:25.053 回答
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>
于 2013-02-27T06:10:38.963 回答
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 才能在服务器端使用文本框值。

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

于 2013-02-27T08:47:49.473 回答