如果我在asp.net文本框上連接了一個TextChanged事件,每次添加/刪除一個字符時它都會觸發。當且僅當文本框符合某些條件時纔可以僅觸發它,例如文本框的字符串長度大於5個字符的非空字符。只有在滿足某些條件時才啓動asp.net TextChangedEvent?
回答
我認爲最好的方法來做到這一點,如果你擔心因爲回發成本,將有一個JavaScript事件處理程序的onchange事件。在這個javascript函數中,你可以快速檢查長度是否大於5,然後做一些回發到服務器(例如,javascript函數可以點擊一個隱藏的按鈕回發,儘管還有其他方式)。
例(用了jQuery):
首先,JavaScript的:
function checkTextBox() {
var textBox = $('#<%=tbTest.ClientID %>');
var hiddenButton = $('#<%=hdnButton.ClientID %>');
if (textBox.val().length > 5)
hiddenButton.click();
}
然後,這些都是ASP.NET控件:
<asp:TextBox runat="server" ID="tbTest"
AutoPostBack="false" onchange="checkTextBox()" ></asp:TextBox>
<asp:Button runat="server" ID="hdnButton" style="visibility:hidden" />
此事件後,才你火點擊遠離文本框。如果你想在鍵入的時候讓它發生,你可以把它改成另一個事件,比如onkeyup。
爲什麼不檢查事件處理程序中TextBox的內容,只有在長度大於5個字符時才進行?
我想過這個,但是我很好奇,如果有可能根本沒有它的火,那麼甚至不會進入方法。 – Xaisoft 2011-02-24 16:54:09
@ Xaisoft [MSDN states](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.textbox.textchanged.aspx)該事件「發生在文本框的內容在發佈到服務器的帖子之間變化。「我不知道你有什麼辦法可以阻止這個事件被解僱。 – Donut 2011-02-24 16:59:39
這是真的,當有回發時這個事件總是會觸發,但是如果文本框的AutoPostBack設置爲false,它將不會作爲文本更改的結果回發。它只會在其他事件導致回發時觸發TextChanged事件。 – 2011-02-24 17:01:37
- 1. 只有在滿足某些條件時才添加單元格
- 2. 只有滿足條件時才填充
- 3. 只有在滿足某個條件但是滿足其他條件的情況下才運行一次函數
- 4. 只有在滿足php條件時才運行javascript
- 5. 更換當滿足某些條件
- 6. TEXTJOIN只有當條件滿足時?
- 7. 只有當條件滿足時才發射一組
- 8. SQL:只有滿足條件時才更新字段
- 9. sql只有滿足條件時才選擇查詢
- 10. 如何滿足某些條件時創建只有值的對象?
- 11. jQuery - 如何在滿足某些條件時調用ajax
- 12. 如何在滿足某些條件時停止JavaScript函數
- 13. 如何在Python中滿足某些條件時觸發函數
- 14. 如何在條件滿足時自動啓動Sql語句?
- 15. 至少有一些列滿足條件
- 16. 要執行DownloadWebpage任務時滿足某些條件
- 17. 滿足某些條件時的第一個日期
- 18. 只有在滿足特定條件時才粘貼到單元格
- 19. 只有在急速加載條件滿足laravel ennial時才獲取記錄
- 20. 只有在滿足一定條件時才執行插入語句
- 21. SQL Server sp_msforeachtable用法只選擇那些滿足某些條件的表
- 22. 如何停止騾子當某些條件在某些類是滿足
- 23. 如果某些條件在mysql中滿足,則計數兩次
- 24. 條件滿足時緩存
- 25. 我想滿足某種條件
- 26. 只有當文本框的所有條件都滿足時才啓用提交按鈕
- 27. 只有在滿足where條件的情況下才能選擇最後一行
- 28. 過濾,直到滿足某些條件首次
- 29. Python - 切片數組,直到滿足某些條件
- 30. Pandas:列滿足某些條件的列返回列標題
我也想過這個,但我不知道該怎麼做。你有一個例子嗎? – Xaisoft 2011-02-24 17:05:16
請參閱我的編輯,我添加了一個例子。 – 2011-02-24 17:14:25