下面是问题的一个样本快照你正在试图解决:
- 4行文本域(此限制在文字区域本身=“4”行)
- 行1,2,和3被限制为24个字符
- 4号线将具有字符的数量不受限制
快照textarea的的:
123456789
123456789
232323232323232323323232
23232323232323232323236464536543654643
的JavaScript:
$('#your-input').keypress(function() {
var text = $(this).val();
var arr = text.split("\n");
if(arr.length > 5) {
alert("You've exceeded the 4 line limit!");
event.preventDefault(); // prevent characters from appearing
} else {
for(var i = 0; i < arr.length; i++) {
if(arr[i].length > 24 && i < 3) {
alert("Length exceeded in line 1, 2, or 3!");
event.preventDefault(); // prevent characters from appearing
}
}
}
console.log(arr.length + " : " + JSON.stringify(arr));
});
这可以通过使用按键事件完成。当keypress事件触发时,获取文本框的当前值,并使用\n
换行符作为分隔符将值拆分为数组。
- 数组的长度告诉你有多少行。如果您超出了这些限制,我们会发出警报。
- 数组中每个单独字符串的长度代表每行的长度。我们使用for循环来检查前3行。如果我们超过24的长度,我们会发出警报。
- 我们忽略了循环的最后一次迭代,因为我们不关心最后一行的长度。
这不是一个完整的解决方案,但是这一定会让你开始并为你提供一些你可以修改以满足你的需求的东西。祝你好运!
如果你问是否有可能。但你有什么尝试? – Joseph
你试图去做什么?如果他们不必全部连接使用4个输入,则可以根据需要限制它们。你甚至可能甚至假冒CSS看起来像一个4输入,似乎是一个更好的解决方案 – Ryan
你可以通过换行符分割和检测字符数。但问题在于,你无法控制每行所说的“行数”,这是由字体大小,字母间距等所决定的。某个OS上的一台机器上的一行可能与另一台机器上的另一行上的另一行不同。瑞恩的例子是一个更好的主意。 –