实现计齐截:用maxlength属性
<textarea maxlength="10"></textarea>
这个别式格式很简单的哦,然则 在我这边测试的时辰,并不克不及完全兼容主流浏览器
兼容性结果如下:
IE8 Firefox 17 Chrome 23
不兼容 兼容 兼容
实现规划二:用javascript实现
<textarea name="txt1" cols="45" rows="2" onKeyDown=""if (this.value.length>=20){event.returnValue=false}""></textarea>
这里就用到了一个onKeyDown。然则结果也不太幻想。
兼容性结果如下:
IE8 Firefox 17 Chrome 23
兼容 不兼容 兼容
实现规划三:综合上方的办法
因为上方无法兼容IE 和firefox,没办法,只能贱一点了!~所以,我就把上方的办法给综合起来~~
代码如下:
<textarea name="txt1" cols="45" maxlength="20" rows="2"
onKeyDown=""if (this.value.length>=20){event.returnValue=false}"">b</textarea>
重视哦,我只是把maxlength加上了!
兼容性结果如下:
IE8 Firefox 17 Chrome 23
兼容 兼容 兼容
原因很简单,maxlength是对firefox和chrome兼容,而那js代码是对IE 兼容。所以就ok啦!!我把
嘻嘻。。那天因为要提交这个ticket 所以急着交咯,反正客户那边经由过程啦。。哇哇哇。。
实现规划四:JavaScript的substring
<textarea name="blogdesc" cols="50" rows="5" onkeyup="limitLength(this,20)">x </textarea>
兼容性结果如下:
IE8 Firefox 17 Chrome 23
兼容 兼容 兼容
然则,其实这个固然上方三个都兼容,然则有一个很不友爱的题目是,当你达到字符限制的时辰,它还会打出来,直到你松开按键的时辰就好了。不过,这个时辰 会有闪一下把后面多余的字符给删除了!~。不太友爱哦!~亲。
实现规划五:JavaScript
<textarea maxlength="10" onpropertychange="onmyinput(this)" oninput="return onmyinput(this)"
onpaste="return onmypaste(this);" onkeypress="return onmykeypress(this);"></textarea>
js代码是:
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.ion.createRange().text.length > 0) {
var ovalueandclipboarddata = o.value + window.clipboardData.getData("Text");
if (o.getAttribute && ovalueandclipboarddata.length - document.ion.createRange().text.length > nMaxLen) {
if (window.clipboardData.getData("Text").substring(0, document.ion.createRange().text.length + nMaxLen - o.value.length) != "")
window.clipboardData.setData("Text", window.clipboardData.getData("Text").substring(0, document.ion.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.ionStart < o.ionEnd) {
var ovalueandclipboarddata = o.value + mygetclipdata();
if (o.getAttribute && (ovalueandclipboarddata.length - o.ionEnd + o.ionStart > nMaxLen)) {
if (mygetclipdata().substring(0, o.ionEnd - o.ionStart + nMaxLen - o.value.length) != "")
mysetclipdata(mygetclipdata().substring(0, o.ionEnd - o.ionStart + 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.ionStart < o.ionEnd)
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.ion.createRange().text.length > 0)
return true;
if (o.value.length >= o.getAttribute("maxlength"))
return false;
else
return true;
}
}
IE8 Firefox 17 Chrome 23
兼容 兼容 兼容
文章来源:http://www.binvor.com/a/xinxizhongxin/wangluokaifajishu/2012/1216/13427.html
分享到:
相关推荐
jQuery textarea文本框输入文字字数限制提示代码,设置固定输入字符,实时计算显示已经输入多少字符。
js代码 [removed] //显示限制输入字符method function textAreaChange(obj){ ... var count_total = $this...jQuery textarea文本框输入文字字数限制提示代码,设置固定输入字符,实时计算显示已经输入多少字符。
jquery新浪发布微博textarea文本框限制文字字数表单 jquery新浪发布微博textarea文本框限制文字字数表单
IE6-9 input和textarea元素的placeholder(占位符)属性与textarea元素的maxlength(最大长度限制)属性的修复与所有浏览器的实时输入捕捉,仅需要提供一个元素或者元素id与实时捕捉回调函数(可选)。甚至实现了各...
textarea文本框删除当前行内容的功能
Vue自定义组件实现文本框根据文本内容自适应高度的效果,解决若输入文本量或显示文本量超过指定行数后,会出现垂直滚动条,但在IE环境下,该滚动条是隐藏的问题。
textarea称文本域,又称文本区,其不能通过maxlength属性来限制字数,为此必须寻求其他方法来加以限制以达到预设的需求
jquery的textarea限制长度插件,很好用
在给一个页面的TextBox 增加控制长度的控制时,简单的加了一个maxlength=’xxx’ 就行,可是测试确总是不过,原因是设置了多行模式,在这样的情况下生成的html代码就是textarea,同时maxlength属性就没有被增加上,...
主要介绍了jQuery实现限制textarea文本框输入字符数量的方法,涉及jQuery键盘事件及页面元素的相关操作技巧,需要的朋友可以参考下
NULL 博文链接:https://diaoweili.iteye.com/blog/774179
// JQuery为textarea添加maxlength // textarea默认不支持maxlength属性。 // 通过JQuery的keyup事件: JQuery代码如下: 代码如下: [removed] $(function(){ //IE也能用textarea $(“textarea[maxlength]”).keyup...
textarea长度控制
自己写的一个小东西 前段时间自己要用在网上下载了一个 不过不好用,自己就写了一个 自我感觉还不错,而且对于限制输入的东西可以根据不同的情况自己修改,方便大家 方便你我他!
这里使用JS实现让Textarea文本框显示行号的功能,每一行的前面都会有下数字序号,如果用来显示代码的话,可以直接找到某一行,如果不显示行号,则还要自己手功去查,想要此功能,你只需设置好TextArea ID,并加入...
js限制textarea每行输入字符串长度的代码.docx