![](/img/trans.png)
[英]client side search textbox using jquery from asp.net gridview function not working
[英]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.