GWT:对RichTextArea进行文本限制,并停止用户输入更多字符

时间:2013-09-12 07:05:43

标签: gwt

我正在使用GWT RixhText区域,并希望在richText区域中限制100个字符。

现在我正在这样做。

                     description.addKeyDownHandler(new KeyDownHandler(){

        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER ||
                    event.getNativeKeyCode() == KeyCodes.KEY_UP ||
                    event.getNativeKeyCode() == KeyCodes.KEY_LEFT||
                    event.getNativeKeyCode() == KeyCodes.KEY_DOWN ||
                    event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE||
                    event.getNativeKeyCode() == KeyCodes.KEY_SHIFT) {

            }else{
            if(description.getText().trim().length()>100){

            Window.alert("You have reached your maximum limit");
            }
            }
        }});

现在当达到100个字符时它工作正常,给我提醒但是如何阻止用户输入更多字符,它显示警报但也接受输入..如何阻止此..

其次我正在使用下面的这个css在区域结束时移动到下一行...它工作正常..但如果用户只是按住键盘上的键并且不释放此css不起作用,没有采取下一行并继续...有这个解决方案

CSS:

       break-word {
  white-space: pre-wrap; /* css-3 */
 white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
 white-space: -pre-wrap; /* Opera 4-6 */
 white-space: -o-pre-wrap; /* Opera 7 */
 word-wrap: break-word; /* Internet Explorer 5.5+ */
}

谢谢

2 个答案:

答案 0 :(得分:4)

使用event.preventDefault()代替Window.alert()

if(description.getText().trim().length()>=100) {
  event.preventDefault();
}

答案 1 :(得分:0)

要防止在100之后输入字符,您可以执行以下操作。

if(description.getText().trim().length()>100)
{
        description.setText(description.getText().substring( 0, 100 ));
        Window.alert("You have reached your maximum limit");
}