Javascript 如何:使用contenteditable=";控制字符计数p标记;真的;? 问题:
如何使用新的html5属性contenteditable=“true”控制p标记内的字符数Javascript 如何:使用contenteditable=";控制字符计数p标记;真的;? 问题:,javascript,jquery,html,Javascript,Jquery,Html,如何使用新的html5属性contenteditable=“true”控制p标记内的字符数 <p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p> <div id="textarea_feedback"></div> 我已经了解了如何使用文本区域执行此操作: (工作)
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
我已经了解了如何使用文本区域执行此操作:
(工作)
但是我如何使用p标签来实现这一点呢?
(不工作)
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
HTML
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
元素没有值。这是用于输入
,文本区域
等
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
您想使用text()
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
工作示例:
元素没有值。这是用于输入
,文本区域
等
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
您想使用text()
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
工作示例:@PaulRoub answer的问题是,如果插入符号光标超过字符限制,则会移动到文本的开头。我用插件解决了这个问题。以下代码说明了具有
id=“#text_area”
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
var限值=4000;
var$chars_left=limit-$(“#text_area”).text().length;
$('char#u limit').text($chars_left)//char_limit是用作计数器的跨度元素
$('#text_area')。在('input',函数(e)上
{
var$char=$('#text_area').text().length;
$chars_left=限制-$char;
$('char#u limit').text($chars_left);
如果($char>4000)
{
var$text=$('#text_area').text().substr(03999);
$('char#u limit')。文本(0);
$('#text_area').html($text);
$('#text_area').caret(3999);//这里是jquery.caret插件,它保持光标的位置
}
})
@PaulRoub answer的问题是,如果插入符号光标超过字符限制,则会移动到文本的开头。我用插件解决了这个问题。以下代码说明了具有id=“#text_area”
<p id="textarea" maxlength="99" contenteditable="true">This content is editable with a max character count of 99.</p>
<div id="textarea_feedback"></div>
var限值=4000;
var$chars_left=limit-$(“#text_area”).text().length;
$('char#u limit').text($chars_left)//char_limit是用作计数器的跨度元素
$('#text_area')。在('input',函数(e)上
{
var$char=$('#text_area').text().length;
$chars_left=限制-$char;
$('char#u limit').text($chars_left);
如果($char>4000)
{
var$text=$('#text_area').text().substr(03999);
$('char#u limit')。文本(0);
$('#text_area').html($text);
$('#text_area').caret(3999);//这里是jquery.caret插件,它保持光标的位置
}
})
谢谢@Paul Roub!有一个问题,我注意到“textarea_feedback”中的文本在用户开始在p标记中键入之前不知道其真实字符数。。你如何设置它自动知道(如果p标签已经有文本了)?我还注意到它也不知道什么时候停止!实际上,它将超出字符计数,并开始添加-negative-numbers。我在启动时将示例链接更新为count;如果超过最大长度,它还会截断文本。但是,在某些浏览器中,光标将移动到文本的开头。我将把这个问题留给其他人来解决(也许你可以单独提问)。谢谢@Paul Roub!有一个问题,我注意到“textarea_feedback”中的文本在用户开始在p标记中键入之前不知道其真实字符数。。你如何设置它自动知道(如果p标签已经有文本了)?我还注意到它也不知道什么时候停止!实际上,它将超出字符计数,并开始添加-negative-numbers。我在启动时将示例链接更新为count;如果超过最大长度,它还会截断文本。但是,在某些浏览器中,光标将移动到文本的开头。我将把这个问题留给其他人来解决(也许你可以作为一个单独的问题来问)。