Textarea 输入长度检查 JavaScript
Textarea input length check in JavaScript
我想创建一个 SMS 网关,每次写入(或粘贴)160 个字符时都会提醒用户。我需要存储一个变量 n,其中包含 160 个字符的消息部分数。代码将是这样的,只是 n 需要全局存储。有没有比 e. G。将其存储到隐藏的表单字段中?
注意:在此特定情况下,一次粘贴少于 160 个字符的假设是安全的。
window.onload = function() {
var n=1;
var t=document.getElementById('msg');
t.addEventListener('input', function() {
var l=t.value.length;
if(l>n*160){
n++;
alert('Message will be split into '+n+' parts');
}
}, false);
}
正如我评论中提到的,这取决于你最终想用 n
做什么。
如果您只是想让它向用户显示一条消息,您可以在计算出该值后更新 DOM。
您当前的示例不允许用户在输入 typed/pasted 文本后删除文本。更好的示例是无状态的,即不要将 n
与其自身进行比较,因为在我下面的例子中:
var t = document.getElementById('msg');
var splitSize = 10;
var n = 1;
t.addEventListener('input', function() {
var nextN = 1;
if (t.value.length > 0) {
nextN = Math.ceil(t.value.length / splitSize);
}
if (n !== nextN) {
n = nextN;
var label = document.getElementById('label');
if (n === 1) {
label.innerHTML = '';
} else {
label.innerHTML = 'The message will be split into ' + n + ' parts';
}
}
});
<p id="label"></p>
<textarea id="msg"></textarea>
我想创建一个 SMS 网关,每次写入(或粘贴)160 个字符时都会提醒用户。我需要存储一个变量 n,其中包含 160 个字符的消息部分数。代码将是这样的,只是 n 需要全局存储。有没有比 e. G。将其存储到隐藏的表单字段中? 注意:在此特定情况下,一次粘贴少于 160 个字符的假设是安全的。
window.onload = function() {
var n=1;
var t=document.getElementById('msg');
t.addEventListener('input', function() {
var l=t.value.length;
if(l>n*160){
n++;
alert('Message will be split into '+n+' parts');
}
}, false);
}
正如我评论中提到的,这取决于你最终想用 n
做什么。
如果您只是想让它向用户显示一条消息,您可以在计算出该值后更新 DOM。
您当前的示例不允许用户在输入 typed/pasted 文本后删除文本。更好的示例是无状态的,即不要将 n
与其自身进行比较,因为在我下面的例子中:
var t = document.getElementById('msg');
var splitSize = 10;
var n = 1;
t.addEventListener('input', function() {
var nextN = 1;
if (t.value.length > 0) {
nextN = Math.ceil(t.value.length / splitSize);
}
if (n !== nextN) {
n = nextN;
var label = document.getElementById('label');
if (n === 1) {
label.innerHTML = '';
} else {
label.innerHTML = 'The message will be split into ' + n + ' parts';
}
}
});
<p id="label"></p>
<textarea id="msg"></textarea>