TextArea は maxlength ソリューション (jquery)_jquery をサポートしていません

WBOY
リリース: 2016-05-16 18:02:22
オリジナル
1226 人が閲覧しました

私は長い間 .net コントロールを使用してきました。ページの TextBox に長さコントロールを追加する場合、単純に maxlength='xxx' を追加しますが、その理由は複数行モードが設定されているためです。この場合 この場合、生成される HTML コードは textarea ですが、IE は textarea の maxlength 属性をサポートしていないため、maxlength 属性は追加されません。したがって、Firefox 6 でテストした結果、Firefox がこの属性をサポートしていることがわかりました。それなら簡単です。 textarea の最大長を簡単に制御できるように、jquery 拡張機能を自分で作成しました。
拡張コードは次のとおりです:

コードをコピーします コードは次のとおりです:

(function($) {
$.fn.textarealimit = function(settings) {
settings = jQuery.extend({
length:1000
}, settings);
maxLength = settings.length;
$(this).attr("maxlength",maxLength).bind("keydown",doKeydown).bind("keypress",doKeypress).bind("beforepaste",doBeforePaste).bind( "ペースト",doPaste) ;
関数 doKeypress()
{
var oTR = document.selection.createRange()
if(oTR.text.length >= 1)
イベント.returnValue = true
else if(this.value.length > maxLength-1)
event.returnValue = false
}
function doKeydown()
{
var _obj=これ;
setTimeout (function()
{
if(_obj.value.length > maxLength-1)
{
var oTR = window.document.selection.createRange()
oTR.moveStart( "character", -1*(_obj.value.length-maxLength))
oTR.text = ""
}
},1)
}
function doBeforePaste()
{
event.returnValue = false
}
function doPaste()
{
event.returnValue = false
var oTR = document.selection.createRange ()
var iInsertLength = maxLength - this.value.length oTR.text.length
var sData = window.clipboardData.getData("Text").substr(0, iInsertLength)
oTR.text = sData;
}
})(jQuery);

上記はIEの特性上、コピー&ペースト制御と入力制御のみです。これらのメソッドは Firefox では無効です。
呼び出しコード:

コードをコピー コードは次のとおりです:
$(document ).ready (function() {
$("#ctl00_ZiiOContent_ucQuestionnaire_txtquestion4_2").textarealimit();
});
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート