【发布时间】:2014-03-31 19:10:53
【问题描述】:
我在单击时显示提示,我希望能够限制用户可以输入的字符数。在 extjs 文档中,我找到了有关 maxLength 属性的信息,听起来确实如此我想要什么。我想如果我将 maxLength 设置为我想要的字符限制,extjs 控件会自动限制我的字符数。到目前为止情况并非如此,但它似乎确实在以某种方式验证输入,因为当超过 maxLength 限制时,它以红色勾勒出文本框。这是我当前的代码:
var prompt, textArea;
prompt = Ext.MessageBox.prompt("Hello!", "Hint");
textArea = prompt.down('textarea');
textArea.maxLength = 140;
唉,这并不能阻止用户输入超过 140 个字符。
有谁知道如何像这样限制 MessageBox 中的字符数?或者有人能告诉我为什么 maxLength 没有按我预期的方式工作吗?
谢谢
--编辑--
正如 newmount 所指出的,看起来正确的解决方案是在 textarea 标签上设置 maxLength 属性。这是一个示例的 w3 学校链接:http://www.w3schools.com/tags/att_textarea_maxlength.asp
我的问题是选择正确的标签。对于 ExtJS 中的文本区域,这看起来像:
// true denotes multiline and causes Ext to use textarea tag for input
var prompt = Ext.MessageBox.prompt("Hello!", "Hint", "", "", true);
prompt.textArea.inputEl.set({
maxLength: 140
});
似乎成功的一半是在生成的标签的海洋中选择正确的 DOM 元素。希望这对将来的人有所帮助!
注意: Opera 或 IE9 及更早版本不支持 maxLength 属性(请参阅 w3 学校链接以获取引用)。
【问题讨论】:
-
你必须使用自定义 JS;文本区域不遵守 maxlength 属性
标签: javascript html extjs extjs4.2