[英]textbox value set in javascript is not avaliable in serverside page load event
我有以下情況。我已經通過從服務器端調用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值被完美分配。但它沒有在第二個文本框中顯示。
在代碼中無法訪問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在客戶端設置TextBox,
您必須用HTML>輸入(文本)替換它
<asp:TextBox ID="txt1" runat="server" ></asp:TextBox>
用。。。來代替:
<input id="txt1" type="text" runat="server" />
然后在html源代碼中將其更改為runat =“server”
現在,您可以在客戶端更改其文本,並在服務器端獲取其值: txt1.Value
我希望有用。
如果您將在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函數之前指定一些值。
UPDATE
唯一的解決方案是您必須使用Jquery Ajax在服務器端使用文本框值。
使用此鏈接供您參考。 ASP.Net中的Jquery Ajax
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.