最近公司的項目客戶在使用時報錯,研究后發現,textarea輸入框,輸入值的長度超過了數據庫中定義的長度,所以造成了,前台的錯誤,因此要對前台輸入框的輸入的長度進行限制;經過研究后發現,一下幾種方法可以較好地解決問題:
備注:其實對於數據長度的驗證,我們可以在提交前,以及提交后進行驗證,但是我們的這個出現問題的,由於某些原因是不能在提交后進行驗證,所以我研究了下幾種前台驗證的方式,供以后有需要的同志參考。
第一種:
其實最簡單的方式是:在submit提交前進行這樣的if判斷,不用js驗證即可,而且較為直觀
if(document.getElementById("textarea的id的名字").value.length >200){
alert您輸入的字數超出限制,最多錄入200個字。");
return false;
}
第二種:
<html>
<head>
<title>
</title>
<script type="text/javascript">
var textarea_maxlen = {
isMax: function(max_length) {
var textarea = document.getElementById("area");
if (textarea.value.length > max_length) {
textarea.value = textarea.value.substring(0,max_length);
}
},
disabledRightMouse: function() {
document.oncontextmenu = function() {
return false;
}
},
enabledRightMouse: function() {
document.oncontextmenu = null;
}
};
</script>
</head>
<body>
請輸入內容:
<br><textarea id="area" onkeyup="textarea_maxlen.isMax(10)" onfocus="textarea_maxlen.disabledRightMouse()"
onblur="textarea_maxlen.enabledRightMouse()" >
</textarea>
</body>
</html>
總結:這種方法在輸入達到最大限制后,是無法輸入進去,較為合理的解決了這樣的問題
第三種:
<html>
<head>
<title>限制Textare輸入數值的個數</title>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312" />
<script language="JavaScript">
function textCounter(field, countfield, maxlimit) {
// 函數,3個參數,表單名字,表單域元素名,限制字符;
if (field.value.length > maxlimit)
//如果元素區字符數大於最大字符數,按照最大字符數截斷;
fieldfield.value = field.value.substring(0, maxlimit);
else
//在記數區文本框內顯示剩余的字符數;
countfield.value = maxlimit - field.value.length;
}
</script>
</head>
<body>
<form name=myform action="">
<textarea name="message" cols="28" rows="5"
onKeyDown="textCounter(this.form.message,this.form.remLen,10);"
onKeyUp="textCounter(this.form.message,
this.form.remLen,10);">
</textarea>
您還可以輸入:<input name="remLen" type="text" value="10" size="3" readonly="readonly">個字符
</form>
</body>
</html>
總結:這種方法可以較為直觀的顯示出輸入框中還能輸入多少字符。