簡體   English   中英

當可見更改為false時,為什么JQuery無法獲取Textarea值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM