簡體   English   中英

使用 javascript function 在客戶端獲取 asp:textbox 值不起作用

[英]get asp:textbox value in client side using javascript function doesn't work

此代碼不顯示值,我不知道為什么?

我有服務器控制:

<asp:TextBox ID="txtTest" runat="server" Visible="false" TextMode="MultiLine"
                    Rows="3" Columns="23" CssClass="white-scroll" />

在 javascript function 中:

var eventText = document.getElementById('<%=txtTest.ClientID%>').value;
alert (eventText);

我輸入文本,然后單擊調用 javascript function 的按鈕,但警告框不顯示輸入的文本。

編輯:當我用 Text="some text" 初始化文本時,它顯示在警報中,我想在客戶端輸入文本並在 Javascript function 中獲取它的值。

謝謝

使用 label 或文本框可見設置為 false 以便它可以訪問 JavaScript 中的值

溶膠

1)

制作一個 div 並設置style="display:none;" 所以 label 不在 UI(瀏覽器)上顯示,但值可以在 JavaScript 中訪問。

這是因為您的服務器控件被稱為“txtTest”而不是“txtEventDescription”

將您的 javascript function 更改為:

var eventText = document.getElementById('<%=txtTest.ClientID%>').value; 
alert (eventText);

編輯:好的,我看到您現在更改了帖子以顯示代碼並重命名了 js 控件,所以上面不再相關(對於那些對我的回答感到困惑的人):-)

問題是Visible="false" - 此控件不會呈現到客戶端,因此無法通過 javascript 訪問(因為 HTML 元素不存在客戶端)

因此,使用 CSS 隱藏元素,然后對其調用警報。 示例片段

CSS

.hide-element {
    display: none;
}

HTML 標記

<asp:TextBox ID="txtTest" runat="server" 
        Columns="23" 
        CssClass="white-scroll hide-element"
        Rows="3"
        TextMode="MultiLine"/>

JavaScript

var eventText = document.getElementById('<%=txtTest.ClientID%>').value;
alert (eventText);

這樣你肯定會收到警報。
您的警報為空,因為您尚未為您的asp:Textbox設置屬性Text

使其Visible="true"顯示在您的文本框中,然后進行測試。

<asp:TextBox ID="txtTest" runat="server" TextMode="MultiLine"
                    Rows="3" Columns="23" CssClass="white-scroll" />

如果“txtTest”文本框在這種情況下具有可見 =“false”,則它不會在客戶端計算機上的 html 代碼上呈現,如果它沒有在客戶端的 html 代碼上呈現,那么 javascript 代碼如何調用此文本框。 因為當 javascript 通過它的 id 搜索這個文本框時它沒有找到並且它給出了一個錯誤。

您可以將任何其他自定義屬性分配給控件,即

    <asp:TextBox ID="txtTest" runat="server" Visible="false" TextMode="MultiLine"
                        Rows="3" Columns="23" CssClass="white-scroll"
 clientID="myClientID" />

然后使用 jquery 之類的訪問控制

var txtVal = $('textbox[clientID=myClientID]').val();

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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