国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

TextArea設置MaxLength屬性最大輸入值的js代碼

2024-05-06 14:20:26
字體:
來源:轉載
供稿:網友

標準的DHTML文檔中TEXTAREA的MAXLENGTH屬性默認情況下不起作用,只有當事件發生時才起作用
如下:http://spiderscript.net/site/spiderscript/examples/ex_textarea_maxlength.asp
但TEXT中有且起作用<input type="text" maxlength="20">,
那么在TEXTAREA中怎么實現輸入內容不能超過多少個字符呢。

方法1、如果只需要截取多少個字符的內容,則可以:
代碼如下:
<textarea onkeyup="this.value = this.value.slice(0, 80)"></textarea>


代碼如下:
<textarea onkeyup="this.value = this.value.substring(0, 80)"></textarea>


方法2、
代碼如下:
<script type="text/javascript">
function ismaxlength(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>

這個方法采用截斷法,輸入到最后一個字符的時候如果再輸入則會顯示光標閃爍。但可以解決使用CTRL+C復制過來的長度限制問題,但如果用鼠標復制過來的不還是不行。

方法3、這個方法直接判斷輸入的長度
代碼如下:
<script language="javascript" type="text/javascript">
<!--
function imposeMaxLength(Object, MaxLen)
{
return (Object.value.length <MaxLen);
}
-->
</script>
<textarea name="myName" onkeypress="return imposeMaxLength(this, 15);" ></textarea>

當輸入內容大于15時因為返回為false所以這個實現不會顯示光標閃爍的問題,但沒有解決復制過來的長度限制問題即復制過來的內容可以超過最大長度限制
return (Object.value.length <=MaxLen);但我測試發現當輸入字節數=maxlen時還可以輸入一個字符,所以我改成 return (Object.value.length <MaxLen);

方法4、其實方法4是方法2與方法3的基礎上進一步優化。客觀的說方法2與方法3都只做了一部分工作
代碼如下:
<mce:script language="javascript" type="text/javascript"><!--
function textlen(x,y){
var thelength = x.value.length;
window.status=thelength+' of '+y+' maximum characters.';
}
function maxtext(x,y){
tempstr = x.value
if(tempstr.length>y){
x.value = tempstr.substring(0,y);
}
textlen(x,y);
}
// --></mce:script>
<form name="myform">
<textarea name="mytextarea"
cols="45"
rows="3"
wrap="virtual"
onkeypress="return(this.value.length<20)"
onkeydown="textlen(this,20)"
onkeyup="textlen(this,20)"
onblur="maxtext(this,20)"
>

上面的方法在原來的基礎上加了onblur事件,這主要用于處理當用戶不是采用輸入而是通過復制粘貼方法來完成文本的轉入時的問題。實際就是方法2與方法3的結合版。 以下是我為TextArea增加并利用maxlength屬性及結合上例的結果:<html><head><script type="text/javascript">function ismaxlength(obj){var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""if (obj.getAttribute && obj.value.length>mlength)alert('該文本框允許輸入最大長度為'+mlength+"個字符,超出內容將會被截斷")obj.value=obj.value.substring(0,mlength)}function imposeMaxLength(obj){ var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "" return (obj.value.length <mlength);}</script></head><body><form name="myform"> <textarea maxlength="5" onkeypress="return imposeMaxLength(this)" onblur="ismaxlength(this)"></textarea></form></body></html> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 韶关市| 渭南市| 疏附县| 思南县| 新宁县| 慈溪市| 阿勒泰市| 睢宁县| 仁化县| 天门市| 东乡族自治县| 无锡市| 晋州市| 息烽县| 新宁县| 满城县| 林芝县| 太康县| 丰镇市| 铜陵市| 邯郸县| 汝州市| 焉耆| 米泉市| 扶绥县| 略阳县| 星子县| 永安市| 汶上县| 丹东市| 广宗县| 凯里市| 遂川县| SHOW| 长沙县| 介休市| 新郑市| 保山市| 隆德县| 隆德县| 奉节县|