Javascript nicedit所见即所得编辑器+;字符数
我在文本区域中使用nicedit来实现丰富的编辑器功能。 我还想在textarea的末尾添加字符计数器,以便用户在textarea中键入特定数量的字符。我使用上面的代码,编辑器工作得很好Javascript nicedit所见即所得编辑器+;字符数,javascript,html,Javascript,Html,我在文本区域中使用nicedit来实现丰富的编辑器功能。 我还想在textarea的末尾添加字符计数器,以便用户在textarea中键入特定数量的字符。我使用上面的代码,编辑器工作得很好 <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> <script type="text/javascript">bkLib.onDomLoaded(ni
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
bkLib.ondomload(nicEditors.allTextAreas);
谢谢那么,您只需要知道文本区域中的字符数 您可以通过textarea的值的length属性获得:
textarea.value.length
下面是一个例子:
<textarea onkeyup="console.log(this.value.length)"></textarea>
这是一个字符数检查。这不是万无一失的,但它会让你开始:
<textarea onkeyup="updateCounter(this)" onpropertychange="this.onkeyup()"></textarea>
<div id="limit"></div>
<script>
var limit = document.getElementById("limit");
function updateCounter(textarea) {
var len = textarea.value.length;
var max = 10;
if(max - len < 0) {
textarea.value = textarea.value.substring(0, max);
} else {
limit.innerHTML = max - len;
}
}
</script>
var limit=document.getElementById(“limit”);
函数更新计数器(文本区域){
var len=textarea.value.length;
var max=10;
如果(最大长度<0){
textarea.value=textarea.value.substring(0,最大值);
}否则{
limit.innerHTML=max-len;
}
}
另外,请记住堆栈溢出是一个程序员帮助站点。我们将帮助解决编码方面的问题,但我们不仅仅是为人们编写程序(有很多这样的网站)。那么,您只需要知道文本区域中的字符数 您可以通过textarea的值的length属性获得:
textarea.value.length
下面是一个例子:
<textarea onkeyup="console.log(this.value.length)"></textarea>
这是一个字符数检查。这不是万无一失的,但它会让你开始:
<textarea onkeyup="updateCounter(this)" onpropertychange="this.onkeyup()"></textarea>
<div id="limit"></div>
<script>
var limit = document.getElementById("limit");
function updateCounter(textarea) {
var len = textarea.value.length;
var max = 10;
if(max - len < 0) {
textarea.value = textarea.value.substring(0, max);
} else {
limit.innerHTML = max - len;
}
}
</script>
var limit=document.getElementById(“limit”);
函数更新计数器(文本区域){
var len=textarea.value.length;
var max=10;
如果(最大长度<0){
textarea.value=textarea.value.substring(0,最大值);
}否则{
limit.innerHTML=max-len;
}
}
另外,请记住堆栈溢出是一个程序员帮助站点。我们将帮助解决编码问题,但我们不只是为人们编写程序(有很多这样的网站。)。如果您想为NicEdit textarea提供一个动态字符计数器,那么您应该意识到NicEditor(以及大多数/所有所见即所得HTML编辑器)是一个可编辑的div,而div的内容仅在div失去焦点后添加到相关的textarea中。我发现简单地尝试动态计算textarea中的字符数是行不通的。也许我做错了什么。在任何情况下,我都可以使用动态NicEdit char计数器,如下所示:
- 设置HTML页面以使用NicEdit:
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
bkLib.ondomload(nicEditors.allTextAreas);
- 添加对包含计数器函数的JavaScript文件的引用:
<script type="text/javascript" language="JavaScript" src="nicCount.js"></script>
- nicCount.js的内容包括:
function nicCount(editor, ctrId, maxChars) { // Count characters remaining in the given nicEditor (editor), and update the given counter (ctrId) counterObj = document.getElementById(ctrId); if(counterObj) { var content = editor.getContent(); if(maxChars - content.length <= 0) { // if there are no characters remaining, display the negative count in red counterObj.innerHTML = "<font color='red'>"+ (maxChars - content.length) + "</font>"; } else { // characters remaining counterObj.innerHTML = maxChars - content.length; } } }
函数nicCount(编辑器、ctrId、maxChars){ //计算给定nicEditor(编辑器)中剩余的字符数,并更新给定计数器(ctrId) counterObj=document.getElementById(ctrId); 如果(反对象){ var content=editor.getContent();
如果(maxChars-content.length如果您想要一个NicEdit文本区域的动态字符计数器,那么您应该意识到NicEditor(以及大多数/所有所见即所得HTML编辑器)是一个可编辑的div,该div的内容仅在该div失去焦点后添加到关联的textarea。我发现简单地尝试动态计算textarea中的字符是不起作用的。也许我做错了什么。在任何情况下,我确实得到了一个动态NicEdit字符计数器,如下所示:- 设置HTML页面以使用NicEdit:
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
bkLib.ondomload(nicEditors.allTextAreas);
- 添加对包含计数器函数的JavaScript文件的引用:
<script type="text/javascript" language="JavaScript" src="nicCount.js"></script>
- nicCount.js的内容包括:
function nicCount(editor, ctrId, maxChars) { // Count characters remaining in the given nicEditor (editor), and update the given counter (ctrId) counterObj = document.getElementById(ctrId); if(counterObj) { var content = editor.getContent(); if(maxChars - content.length <= 0) { // if there are no characters remaining, display the negative count in red counterObj.innerHTML = "<font color='red'>"+ (maxChars - content.length) + "</font>"; } else { // characters remaining counterObj.innerHTML = maxChars - content.length; } } }
函数nicCount(编辑器、ctrId、maxChars){ //计算给定nicEditor(编辑器)中剩余的字符数,并更新给定计数器(ctrId) counterObj=document.getElementById(ctrId); 如果(反对象){ var content=editor.getContent();
如果(maxChars-content.length也有这个问题,经过一些搜索后,我找到了这个解决方案:$('body').on('keyup keydown focus','.nicEdit-selected', function (event) { $('#chars_text').text($(this).html().replace(/<\/?[^>]+(>|$)/g, "").length)});
字符文本id可以放在靠近nicedit的任何位置 其他解决方案基于.text().length,nicEdit使用html(),这带来了另一个问题-字符数还包括nicEdit插入的标记,因此必须首先剥离它们$('body').on('keyup keydown focus','.nicEdit selected',函数(事件){$('chars_text').text($(this.html().replace(/]+(>|$)/g,”).length)});
希望能有所帮助。也有这个问题,经过一些搜索,我找到了这个解决方案:$('body').on('keyup keydown focus','.nicEdit-selected', function (event) { $('#chars_text').text($(this).html().replace(/<\/?[^>]+(>|$)/g, "").length)});
字符文本id可以放在靠近nicedit的任何位置 其他解决方案基于.text().length,nicEdit使用html(),这带来了另一个问题-字符数还包括nicEdit插入的标记,因此必须首先剥离它们$('body').on('keyup keydown focus','.nicEdit selected',函数(事件){$('chars_text').text($(this.html().replace(/]+(>|$)/g,”).length)});
希望有此帮助。是并在文本区域下打印…任何也添加一个限制,例如:作为用户类型剩余300个字符…299…等。是并在文本区域下打印…任何也添加一个限制,例如:作为用户类型剩余300个字符…299…等。
- 设置HTML页面以使用NicEdit: