[英]Why JQuery is unable to get Textarea value when the visible changed to false?
我以為將textarea更改為不可見將從用戶視圖中消失,但仍被存儲的信息隱藏? 對於我的結果,只要文本區域保持可見,Jquery就能獲取信息。 C#服務器端代碼是將textarea可見更改為false的代碼。
單擊第一個按鈕(BtnIPAM)之后,C#服務器端從textarea獲取信息並執行此工作,然后將可見的textarea更改為false。
然后,我單擊第二個按鈕(BtnISM)來調用JQuery以獲取相同的文本區域,但沒有任何結果。 如果我在C#服務器端注釋掉以使textarea可見,則JQuery將能夠從textarea獲取信息。
有人知道為什么會發生這種情況以及解決方法嗎?
aspx代碼包括textarea,第一個按鈕(BtnIPAM)和第二個按鈕(BtnISM):
<asp:TextBox ID="txt" runat="server" visible="False" TextMode="MultiLine"
Width=356px Height=200px style="margin-left: 0px"></asp:TextBox>
<asp:Button ID="BtnIPAM" runat="server" onclick="BtnIPAM_Click"
Text="Assign It!" />
<br />
<asp:Button ID="BtnISM" runat="server"
OnClientClick="if (!CreateIsm()) {return false;}" UseSubmitBehavior="false"
Text="ISM Easy Button" />
簡單的C#按鈕點擊方法,
protected void BtnIPAM_Click(object sender, EventArgs e)
{
//other codes are doing job before change txt to false
txt.Visible = false;
}
在javascript CreateIsm()函數中,我使用notes = $('#txt').val();
獲取textarea信息。
在asp.net中,當您將可見設置為錯誤控制時,不在頁面上呈現,這就是為什么您無法在頁面上訪問它的原因
在ASP.NET服務器端代碼中,將Visible設置為false
實際上不會使控件不可見,而是將其呈現在頁面上。
如果要呈現隱藏的控件,可以編寫:
txt.Style.Add(HtmlTextWriterStyle.Display, "none");
或者簡單地:
txt.Style.Add("display", "none");
代碼txt.Visible = false;
導致您的textarea HTML根本無法呈現。 您可以使用txt.Attributes["style"] = "display:none";
<asp:TextBox>
可能正在頁面上為您的控件創建備用ID,因此搜索'#txt'
將無法獲得實際的控件。 或者,您可以將ClientIDMode
設置為ClientIDMode.Static
(只需通過為控件上的該屬性指定Static即可),那么它就不會更改您的ID,但是您必須確保頁面上的所有控件都具有唯一ID。
像這樣:
<asp:TextBox ID="txt" runat="server" ClientIDMode="Static">
此外,在控件上設置Visible='false'
甚至不會編寫標記以將其顯示在頁面上,因此該控件不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.