- 浏览: 10910 次
文章分类
最新评论
自己写的支持ie ff chorm的长度限制
function lengthLmit(){ var evt = window.event || arguments.callee.caller.arguments[0]; // 获取event对象 var src = evt.srcElement || evt.target; // 获取触发事件的源对象 var iKeyCode = evt.keyCode || evt.which; //获取按钮代码 if (src.value.length>=10){ if (window.navigator.userAgent.indexOf("IE")>=1){ evt.returnValue=false; }else { evt.preventDefault() } } }
<textarea onkeydown="lengthLmit()" rows="8" cols="100"></textarea>
最简单的:
<textarea name="A" cols="45" rows="2" onKeyDown='if (this.value.length>=20){event.returnValue=false}'>aaaa</textarea>
简单有效,但问题是输入20个字符后边删除键、光标键通通失效,未够20个字符时粘贴一段长文字也可以突破限制。
最粗暴的:
<script type="text/javascript"> function isMaxLen(o){ var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):""; if(o.getAttribute && o.value.length>nMaxLen){ o.value=o.value.substring(0,nMaxLen) } } </script>
<textarea maxlength="10" onkeyup="return isMaxLen(this)"></textarea>
用户会很疑惑,我明明录入了内容怎么一放手都没了, 而且光标键都跳到后面。
最牛的:
<html>
<head> <title>IE和FireFox中的textarea长度限制</title> </head> <body> <textarea maxlength="10" onpropertychange="onmyinput(this)" oninput="return onmyinput(this)" onPaste="return onmypaste(this);" onKeyPress="return onmykeypress(this);"></textarea>
//功能:IE和FireFox中的textarea长度限制
//作者:铁血骷髅
<script type="text/javascript"> function onmyinput(o) { if(o.value.length>=o.getAttribute("maxlength")) { if(o.value.length>o.getAttribute("maxlength")) o.value = o.value.substring(0,o.getAttribute("maxlength")); return false; } return true; } function mygetclipdata() { if(!document.all) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); trans.addDataFlavor('text/unicode'); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); clip.getData(trans,clip.kGlobalClipboard); var str=new Object(); var strLength=new Object(); trans.getTransferData("text/unicode",str,strLength); if (str) str=str.value.QueryInterface(Components.interfaces.nsISupportsString); var pastetext; if (str) pastetext=str.data.substring(0,strLength.value / 2); return pastetext; } else { return window.clipboardData.getData("Text"); } } function mysetclipdata(o) { if(!document.all) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); trans.addDataFlavor("text/unicode"); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); str.data=o; trans.setTransferData("text/unicode",str,o.length*2); var clipid=Components.interfaces.nsIClipboard; clip.setData(trans,null,clipid.kGlobalClipboard); } else { window.clipboardData.setData("Text",o); } } function onmypaste(o) { var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):""; if(!document.all) { alert("不可能执行的代码"); } else { if(document.selection.createRange().text.length>0) { var ovalueandclipboarddata = o.value +window.clipboardData.getData("Text"); if(o.getAttribute && ovalueandclipboarddata.length-document.selection.createRange().text.length>nMaxLen) { if(window.clipboardData.getData("Text").substring(0,document.selection.createRange().text.length+nMaxLen-o.value.length)!="") window.clipboardData.setData("Text",window.clipboardData.getData("Text").substring(0,document.selection.createRange().text.length+nMaxLen-o.value.length)); else return false; } } else { var ovalueandclipboarddata = o.value +window.clipboardData.getData("Text"); if(o.getAttribute && ovalueandclipboarddata.length>nMaxLen) { if(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)!="") window.clipboardData.setData("Text",ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)); else return false; } } return true; } } function onmykeypress(o) { if(!document.all) { var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):""; if(onmykeypress.caller.arguments[0].ctrlKey == true) { if(onmykeypress.caller.arguments[0].which==118) { if(o.selectionStart<o.selectionEnd) { var ovalueandclipboarddata = o.value + mygetclipdata(); if(o.getAttribute && (ovalueandclipboarddata.length-o.selectionEnd + o.selectionStart>nMaxLen)) { if(mygetclipdata().substring(0,o.selectionEnd - o.selectionStart+nMaxLen-o.value.length)!="") mysetclipdata(mygetclipdata().substring(0,o.selectionEnd - o.selectionStart+nMaxLen-o.value.length)); else return false; } } else { var ovalueandclipboarddata = o.value +mygetclipdata(); if(o.getAttribute && ovalueandclipboarddata.length>nMaxLen) { if(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)!="") mysetclipdata(ovalueandclipboarddata.substring(0,nMaxLen-o.value.length)); else return false; } } return true; } } if(onmykeypress.caller.arguments[0].which==0 || onmykeypress.caller.arguments[0].which==8) return true; if(o.value.length>=o.getAttribute("maxlength")) { if(o.selectionStart<o.selectionEnd) return true; if(o.value.length>o.getAttribute("maxlength")) o.value = o.value.substring(0,o.getAttribute("maxlength")); return false; } else return true; } else { if(document.selection.createRange().text.length>0) return true; if(o.value.length>=o.getAttribute("maxlength")) return false; else return true; } } </script>
</body> </html>
只有想不到,没有做不到,写这代码的哥们太太太牛了。
相关推荐
jquery的textarea限制长度插件,很好用
NULL 博文链接:https://diaoweili.iteye.com/blog/774179
textarea长度控制
自己写的一个小东西 前段时间自己要用在网上下载了一个 不过不好用,自己就写了一个 自我感觉还不错,而且对于限制输入的东西可以根据不同的情况自己修改,方便大家 方便你我他!
js限制textarea每行输入字符串长度的代码.docx
引入这个文件$("#id").maxLength(9999);就能用了!
textarea控制输入长度的例子textarea控制输入长度的例子textarea控制输入长度的例子textarea控制输入长度的例子textarea控制输入长度的例子
扩展textarea 属性,结合jquery.validate.js,在提交表单同时,加上对textarea的长度进行验证。
NULL 博文链接:https://zhouchaofei2010.iteye.com/blog/1606629
控制textarea文本长度,限制输入字数(带统计)的特效! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
textarea输入限制方法,此方法使用js来控制输入数据最大值,也限制了复制粘贴输入、鼠标拖放输入。
angularjs实现textarea文本输入字数限制功能
为原始的HTML页面中的textarea框加入行号,替代一些复杂的文本编辑器
与单行文本框text控件不同,它不能通过maxlength属性来限制字数,为此必须寻求其他方法来加以限制以达到预设的需求。 通常的做法就是使用#脚本语言来实现对textarea文本域的字数输入限制,简单而实用。假设我们有一...
js和jquery分别实现对textarea字数的限制,精彩
js代码 [removed] //显示限制输入字符method function textAreaChange(obj){ ... var count_total = $this...jQuery textarea文本框输入文字字数限制提示代码,设置固定输入字符,实时计算显示已经输入多少字符。
JS控制文本框textarea输入字数限制的方法,需要的朋友可以参考一下
因为业务需求 今天做了一个textarea文本域字符串长度限制的方法,其实网上已经有了很多相关的解决方案,但在输入日语时,在IE存在BUG,我的这个版本就是针对这种情况的
textarea元素在chrome等浏览器下可以被拖拉从而改变大小,对于查看textarea里面的内容来说相当方便,但是有时候,我们为了保持网页的美观,不得不想要禁掉这个功能,禁止用户随意拉动textarea的大小
textarea 随内容高度固定,自动增宽;宽度固定,自动增高; 以及 wrap 的几种属性简介。