2011-08-08 120 views
9

我無法設置GWT TextArea的最大長度。有人可以幫助我在GWT中實現這個嗎?GWT TextArea的最大長度

TextArea t1 = new TextArea(); 
t1.setMaxLength(300); // This method doesn't exist. How do I do this? 
+0

你什麼意思,你是無法設置最大長度?究竟是什麼問題,除非你遇到問題,否則你並沒有多說。 –

+0

嗨,我想限制用戶不能輸入超過300個字符,我查看了API,沒有辦法可以爲我做。我怎麼能在gwt –

回答

3

其原因maxLength是一個html5功能,所以它不適用於舊版瀏覽器。你必須自己做。只需添加一個keyPresshandler並計算textarea中文本的長度,並在文本長度過長的情況下剪切文本。

+0

實現這個嗨,謝謝你的回覆,但是當我從word文件(它有超過300個字符)複製內容並粘貼到文本區域時,即使這次它也不應該允許。請幫我解決這個問題。 –

+0

你有沒有測試過它不適用於keyPressHandler。在複製粘貼上按下所有2個鍵後。啊,但不是當你使用上下文菜單。似乎你必須使用JSNI方法來自己實現粘貼事件:http://www.quirksmode.org/dom/events/cutcopypaste.html –

+0

我使用了所有的處理程序,它實際上工作,但不是當我剪切複製粘貼。有沒有辦法做到這一點。謝謝 –

6

您可以將其設置爲這樣:

t1.getElement().setAttribute("maxlength", "100"); 
14

加爾的答案是正確的只有一個修正:

t1.getElement().setAttribute("maxlength", "100"); 

第二個參數是一個字符串。這對我有效。

+0

這是否適用於GWT 2.3? – Pith

+0

@pith是的,它應該工作.. –

+0

對不起,我應該刪除我的評論。我的問題是我使用GXT組件。 – Pith