我正在使用以下JavaScript函数来限制textarea中的字符:
function limit(element, max_chars)
{
if(element.value.length > max_chars)
element.value = element.value.substr(0, max_chars);
}
<textarea onkeyup="javascript:limit(this, 4000)"></textarea>
在Firefox中的textarea中输入长文本并且达到限制时,焦点将返回到textarea的顶部,并且textarea本身很奇怪。在其他浏览器中一切都很好。有没有办法解决这个问题或用JavaScript限制字符/删除额外字符的其他方法?
谢谢!
答案 0 :(得分:2)
你能不能使用maxlength属性来处理一个必须依赖JS的textarea诗歌?或者我错过了什么?
<textarea maxlength="10"></textarea>
编辑:
适用于支持HTML5的所有浏览器。如果您需要支持旧版浏览器,可能需要查看以下链接:
How to impose maxlength on textArea in HTML using JavaScript
HTML5信息:
答案 1 :(得分:0)
<script type="text/javascript">
/***********************************************
* Textarea Maxlength script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function imposeMaxLength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
</script>
<textarea maxlength="40" onkeyup="return ismaxlength(this)"></textarea>
答案 2 :(得分:0)
HTML:
<!-- Use maxlength for browsers that support it -->
<textarea maxlength="4000" onkeypress="restrictLength(this, event)"></textarea>
JavaScript的:
function restrictLength(reference, event) {
// Retrieve maxChars from "maxlength" attribute;
// otherwise, default to 4000
var maxChars = reference.getAttribute("maxlength") ? parseInt(reference.getAttribute("maxlength")) : 4000;
// Stop event from propagating up the event chain
event.stopPropagation();
// Test if length > maxChars
if (reference.value.length > maxChars) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
}
}