3

如何获取 Mojo TextField 中文本的长度?

我正在尝试设置一个限制为 150 个字符的多行文本字段,我尝试使用计数器来执行此操作,但遇到了在擦除文本时无法减少计数器或在粘贴时添加正确数字的问题文本,所以我的新方法是每次按下字母时获取文本的长度。

我已经尝试过这个:(在 的charsAllow属性中调用textField

if (this.controller.get("mensaje").mojo.getValue().length <= 150) {
    return true;
}

this.controller.get("mensaje").mojo.blur();
return false;

但它不起作用....我调试并且函数在粗体行之后退出......它甚至不返回truefalse

我还尝试将长度值分配给变量或将文本分配给变量然后获取长度,但没有。

这是同一个问题。它在 . 之后返回getValue()

另外,也许是因为这个问题,文本滚动而不是换行,但是当textField失去焦点时它会换行。

4

4 回答 4

1

如果 'mensaje' 是您的文本字段的 HTML id,请尝试获取它并使用 .innerHTML().length。换句话说,使用 Javascript/Prototype 函数而不是 Mojo 对象来处理 DOM 元素。

于 2009-08-18T11:28:59.963 回答
0

我发现这有点奇怪......函数 mojo.getValue() 确实有效......但不是从“charsAllow”调用的函数内部......而且,charsAllow 调用的函数不能调用任何其他函数函数,它只是打破了函数什么都不做......有人有办法限制多行文本字段中的字符吗?(mojo 文本字段,以保留外观:D)。谢谢!!

于 2009-08-19T17:02:45.917 回答
0

我的第一个猜测是“this”没有正确传递给 charsAllow。您是否 .bind(this) 将您作为参数传递的函数?

于 2009-08-31T15:02:45.220 回答
0

这个博客解释了一些关于文本字段可能有用的信息:http: //kmdarshan.com/wordpress/ ?p=3305

于 2010-05-11T23:02:24.093 回答