2011-02-24 94 views

回答

2

我認爲最好的方法來做到這一點,如果你擔心因爲回發成本,將有一個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。

+0

我也想過這個,但我不知道該怎麼做。你有一個例子嗎? – Xaisoft 2011-02-24 17:05:16

+0

請參閱我的編輯,我添加了一個例子。 – 2011-02-24 17:14:25

0

爲什麼不檢查事件處理程序中TextBox的內容,只有在長度大於5個字符時才進行?

+0

我想過這個,但是我很好奇,如果有可能根本沒有它的火,那麼甚至不會進入方法。 – Xaisoft 2011-02-24 16:54:09

+0

@ Xaisoft [MSDN states](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.textbox.textchanged.aspx)該事件「發生在文本框的內容在發佈到服務器的帖子之間變化。「我不知道你有什麼辦法可以阻止這個事件被解僱。 – Donut 2011-02-24 16:59:39

+0

這是真的,當有回發時這個事件總是會觸發,但是如果文本框的AutoPostBack設置爲false,它將不會作爲文本更改的結果回發。它只會在其他事件導致回發時觸發TextChanged事件。 – 2011-02-24 17:01:37

相關問題