擴展textarea 屬性,結合jquery.validate.js,在提交表單同時,加上對textarea的長度進行驗證。
1.jQuery 對textarea 長度進行驗證的插件
代碼如下:
//對textarea 長度進行驗證
jQuery.fn.checkLength = function(parameters) {
defaults = {
min: 0
, max: 5
}
jQuery.extend(defaults, parameters);
// 當前textarea 的值
var taValue = $(this).val();
var len = taValue.length;
if (len >= defaults.max) {
$(this).parent().append(showLengthError("max")).show();
window.setTimeout(function() {
$(".lenError").hide();
}, 5000);
return false;
} else if (len <= defaults.min) {
$(this).parent().append(showLengthError("min"));
window.setTimeout(function() {
$(".lenError").hide();
}, 5000);
return false;
} else {
return true;
}
//todo: 當鍵盤輸入在正確范圍的時候,消除提示
}
注釋: 1) 參數傳遞:
defaults = {
min: 0
, max: 5
}
分別用於用於接收textarea的最短和最大長度。
2) 返回值
true : 驗證長度通過
false : 驗證長度失敗
2. 使用說明:
在頁面添加js引用:
<script type="text/javascript" src="../../../scripts/jquery/jquery.textarea.js"></script>
示例:
在頁面中
<textarea id="txtContent" rows="4" cols="40"></textarea>
<button id="chklen">Check Textarea Length</button>
當觸發按鈕事件的時候,我們就可以對textarea 的長度進行判斷了。
代碼如下:
$("#chklen").click(function(){
var bool = $("#txtContent").checkLength({
min : -1
,max: 10
});
if(bool){
alert(bool);
}
});
如果textarea是在form表單當中的,則在表單提交的同時,進行驗證,條件滿足的時候再進行提交。
如下示例:
代碼如下:
// 判斷 testarea 長度是否超出限制
var ckContent = $("#txtContentIntro").checkLength({
min : -1 //不判斷是否為空
,max: 512 //最大長度512
});
// 表單驗證
var b = $("#fcourseware").valid();
// 執行上傳操作,上傳成功後保存課件信息
if (b && ckContent ) {
// todo: submit form
}
min和max兩個參數均可以不傳遞值,默認最小長度0,最大長度10.如果textarea不為必填項,則min 值賦予 -1.
最後通過返回bool值進行操作。