多重<text区域>具有字符计数器+行限制器的字段
multiple <textarea> fields with character counter+row limiter
这是我目前必须对用户的可用字符进行倒计数的内容。它可以在多个文本区域工作,我只需要更改id即可。
function checkTextArea(id,limit){
if (document.getElementById(id)){
var txt = document.getElementById(id).value;
if (txt.length>limit){
document.getElementById(id).value = txt.substr(0,limit);
}
len = document.getElementById(id).value.length;
if (document.getElementById('count'+id)){
document.getElementById('count'+id).innerHTML = (limit-len)+" characters remaining.";
}
}
}
这是限制文本区域中可用行数的JS。
$(document).ready(function(){
var textArea = $('#foo');
var maxRows = textArea.attr('rows');
var maxChars = textArea.attr('cols');
textArea.keypress(function(e){
var text = textArea.val();
var lines = text.split(''n');
if (e.keyCode == 13){
return lines.length < maxRows;
}
else{ //Should check for backspace/del/etc.
var caret = textArea.get(0).selectionStart;
console.log(caret);
var line = 0;
var charCount = 0;
$.each(lines, function(i,e){
charCount += e.length;
if (caret <= charCount){
line = i;
return false;
}
//'n count for 1 char;
charCount += 1;
});
var theLine = lines[line];
return theLine.length < maxChars;
}
});
});
我需要将这些组合起来,这样我就可以在多个文本区域上使用行限制和字符数。
http://jsfiddle.net/YevSV/我会把它作为一个练习留给你,让它在边缘看起来很漂亮
编辑:为了防止稍后有人来,这里的限制作为一个参数,并解释了jQuery在添加字符之前调用回调的事实(纯粹是装饰性的比较已经>=)
$(document).ready(function(){
applyLimiter("foo",420);
});
function applyLimiter(id,limit) {
if (document.getElementById('count'+id)){
document.getElementById('count'+id).innerHTML = limit+" characters remaining.";
}
var textArea = $('#'+id);
var maxRows = textArea.attr('rows');
var maxChars = textArea.attr('cols');
textArea.keypress(function(e){
var text = textArea.val();
var len=text.length;
if (document.getElementById('count'+id)){
document.getElementById('count'+id).innerHTML = (limit-(len+1))+" characters remaining.";
}
if (len>=limit) return false;
var lines = text.split(''n');
if (e.keyCode == 13){
return lines.length < maxRows;
}
else{ //Should check for backspace/del/etc.
var caret = textArea.get(0).selectionStart;
console.log(caret);
var line = 0;
var charCount = 0;
$.each(lines, function(i,e){
charCount += e.length;
if (caret <= charCount){
line = i;
return false;
}
//'n count for 1 char;
charCount += 1;
});
var theLine = lines[line];
return theLine.length < maxChars;
}
});
}
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 在wordpress一定时间后更改自定义字段
- 如何在HTML输入字段中添加不可删除的后缀
- Meteor-添加用户自定义字段的方法不起作用
- 互斥单选按钮和相应的输入字段
- 在IE9中的输入字段中输入焦点最近按钮
- 选中单选框时将属性添加到输入字段
- 递增aspmvc视图页面中的计数器,用于使用jquery插入字段
- 多重<text区域>具有字符计数器+行限制器的字段
- Angular JS 自动递增计数器的 ID 字段
- 输入字段的 PHP 计数器
- 在节点中使用计数器集合.js递增 ID 字段
- 如何使用计数器添加动态字段以限制jQuery中的字段数
- 如何将相同的日期第一个文本框设置为第二个文本框,当计数器字段
- Rails在将记录添加到单独的DB时更新另一个DB计数器字段