我想添加按下超过250个字符时触发的keydown事件。这是代码,
var c = Ext.MessageBox.show({
title: "Version Remarks",
id:'test',
inputType: "textareafield",
msg:"Please Enter Version Remarks: (Only 250 Character)",
width: 375,
buttons: Ext.MessageBox.OKCANCEL,
multiline: true,
label: Ext.MessageBox.label,
fn: b,
icon: Ext.MessageBox.INFO,
modal: true,
closable: false,
allowBlank: false,
});
c.textArea.on('change', function (e, text, o) {
if (text.length > 250) {
c.msgButtons.ok.setDisabled(true);
//c.label.setText("This is the label");
alert("You are not able to enter more than 250 Character.!!")
} else {
c.msgButtons.ok.setDisabled(false);
}
}
当我按下251个字符时,弹出窗口显示并允许我输入字符,但现在我想使用onkeydown事件,不允许用户输入任何超过250个字符的字符。
答案 0 :(得分:2)
使用文本框的maxLength
配置并致电setMaxLength将其设置为250个字符。
来自sencha文档。
允许输入字符的最大数量。
所以你的代码看起来像是:
var c = Ext.MessageBox.show({
// your config
});
c.textArea.setMaxLength(250);
答案 1 :(得分:2)
如果您不希望用户通知已达到最大字符数限制&不允许他输入更多字符然后你可以使用maxLength
元素的textarea
属性(html而不是extjs)来设置maxlength。
c.textArea.el.dom.querySelector('textarea').maxLength=250;
要通知用户,我们需要使用keypress
事件来检查文本的长度,并在长度超过250时通知用户。
工作示例
Ext.application({
launch : function() {
var c = Ext.MessageBox.show({
title: "Version Remarks",
id:'test',
inputType: "textareafield",
msg:"Please Enter Version Remarks: (Only 250 Character)",
width: 375,
buttons: Ext.MessageBox.OKCANCEL,
multiline: true,
label: Ext.MessageBox.label,
icon: Ext.MessageBox.INFO,
modal: true,
closable: false,
allowBlank: false,
});
c.textArea.el.dom.querySelector('textarea').maxLength=250;
c.textArea.el.dom.querySelector('textarea').onkeypress=function(){
if(this.value.length==250){
alert("You are not able to enter more than 250 Character.!!");
return false;
} };
}
});
<link rel="stylesheet" href="https://cdn.sencha.com/ext/gpl/4.1.1/resources/css/ext-all.css">
<script type="text/javascript" src="https://cdn.sencha.com/ext/gpl/4.1.1/ext-all-debug.js"></script>
答案 2 :(得分:1)
我尝试了这个,它也有效。
var c = Ext.MessageBox.show({
title: "Version Remarks",
id: 'test',
inputType: "textareafield",
msg: "Please Enter Version Remarks: (Only 250 Character)",
width: 375,
buttons: Ext.MessageBox.OKCANCEL,
multiline: true,
label: Ext.MessageBox.label,
fn: b,
icon: Ext.MessageBox.INFO,
modal: true,
closable: false,
allowBlank: false,
});
c.textField.maxLength = 250;
c.textArea.el.dom.querySelector('textarea').onkeyup = function () {
if (this.value.length > 250) {
this.value = this.value.substr(0, 250);
alert("Maximum 250 characters are allowed for version remark.");
return false;
}
};