我在单击时显示提示,并且希望能够限制用户可以输入的字符数。在extjs文档中,我找到了有关maxLength属性的信息,听起来这正是我想要的。我发现如果将maxLength设置为所需的字符数限制,则extjs控件会自动限制我的字符数。到目前为止,情况并非如此,但是它似乎确实以某种方式验证了输入,因为当超出maxLength限制时,该文本框用红色勾勒出轮廓。这是我当前的代码:
var prompt, textArea; prompt = Ext.MessageBox.prompt("Hello!", "Hint"); textArea = prompt.down('textarea'); textArea.maxLength = 140;
las,这无法阻止用户输入超过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学校链接)。