2011-08-08 78 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