如果我在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. Wordpress只有在某些條件滿足時才添加動作和過濾器
- 3. 只有滿足條件時才填充
- 4. 只有在滿足某些條件時才調用WP插件函數
- 5. 如果某些條件滿足,在啓動時啓動備用活動
- 6. Rails - 僅當滿足某些條件時才顯示循環
- 7. 只有Python滿足條件時才替換一條線
- 8. 只有在滿足某個條件但是滿足其他條件的情況下才運行一次函數
- 9. 只有在滿足php條件時才運行javascript
- 10. Linq如何只有在滿足條件時才返回?
- 11. 更換當滿足某些條件
- 12. TEXTJOIN只有當條件滿足時?
- 13. sql只有滿足條件時才選擇查詢
- 14. 只有當條件滿足時才發射一組
- 15. 只有條件滿足時才更新行
- 16. Cognos報告 - 只有滿足條件時才生成報告
- 17. SQL:只有滿足條件時才更新字段
- 18. 如何滿足某些條件時創建只有值的對象?
- 19. 只有在滿足條件的情況下才過濾數據
- 20. 只有在滿足特定條件時才選擇最後一條記錄
- 21. 只有在滿足特定條件時才選擇最後一條記錄
- 22. 如何在滿足某些條件時廣播消息
- 23. jQuery - 如何在滿足某些條件時調用ajax
- 24. 如何在Python中滿足某些條件時觸發函數
- 25. 如何在滿足某些條件時停止JavaScript函數
- 26. mysql:只有在尊重某些條件時才插入
- 27. 只有滿足條件才能循環使用?
- 28. 只有當過濾器條件滿足時纔將文件移動到某個位置
- 29. 至少有一些列滿足條件
- 30. 如何在條件滿足時自動啓動Sql語句?
我也想過這個,但我不知道該怎麼做。你有一個例子嗎? – Xaisoft 2011-02-24 17:05:16
請參閱我的編輯,我添加了一個例子。 – 2011-02-24 17:14:25