سؤال

كيفية تقييد الحد الأقصى لعدد الأحرف التي يمكن إدخالها في HTML <textarea>؟أنا أبحث عن حل عبر المتصفح.

هل كانت مفيدة؟

المحلول

ال TEXTAREA العلامة لا تحتوي على MAXLENGTH سمة الطريقة التيINPUT العلامة تفعل ذلك، على الأقل ليس في معظم المتصفحات القياسية.طريقة بسيطة وفعالة للغاية للحد من عدد الأحرف التي يمكن أن تكون كتبته الى TEXTAREA العلامة هي:

<textarea onKeyPress="return ( this.value.length < 50 );"></textarea>

ملحوظة: onKeyPress, ، سوف يمنع أي ضغطة على الزر، أي زر مشتمل مفتاح مسافة للخلف.

يعمل هذا لأن التعبير المنطقي يقارن طول الحقل قبل إضافة الحرف الجديد إلى الحد الأقصى للطول الذي تريده (50 في هذا المثال ، واستخدم خاصك هنا) ، ويعيد صحيحًا إذا كان هناك مجال آخر ، false ان لم.تؤدي إرجاع خطأ من معظم الأحداث إلى إلغاء الإجراء الافتراضي.لذلك إذا كان الطول الحالي بالفعل 50 (أو أكثر) ، فإن المعالج يعيد خطأ ، KeyPress يتم إلغاء الإجراء ولا تتم إضافة الشخصية.

ذبابة واحدة في المرهم هي إمكانية لصقها في TEXTAREA، الذي لا يسبب KeyPress الحدث لاطلاق النار، والتحايل على هذا الاختيار.يحتوي Internet Explorer 5+ على onPaste الحدث الذي يمكن أن يحتوي معالجه على الشيك.ومع ذلك ، لاحظ أنه يجب عليك أيضًا مراعاة عدد الأحرف التي تنتظر في الحافظة لمعرفة ما إذا كان المجموع سيأخذك على الحد الأقصى أم لا.لحسن الحظ ، يحتوي IE أيضًا على كائن الحافظة من كائن النافذة.1 هكذا:

<textarea onKeyPress="return ( this.value.length < 50 );"
onPaste="return (( this.value.length +
window.clipboardData.getData('Text').length) < 50 );"></textarea>

مرة أخرى، onPaste الحدث و clipboardData الكائن هو IE 5+ فقط.للحصول على حل عبر المتصفحات، سيكون عليك فقط استخدام OnChange أو OnBlur معالج للتحقق من الطول، والتعامل معه كما تريد (اقتطاع القيمة بصمت، وإخطار المستخدم، وما إلى ذلك).لسوء الحظ، هذا لا يلتقط الخطأ أثناء حدوثه، فقط عندما يحاول المستخدم مغادرة الحقل، وهو أمر غير سهل تمامًا.

مصدر

هناك أيضًا طريقة أخرى هنا، بما في ذلك النص البرمجي النهائي الذي يمكنك تضمينه في صفحتك:

http://cf-bill.blogspot.com/2005/05/textarea-maxlength-revisited.html

نصائح أخرى

يسمح HTML5 الآن maxlength السمة على <textarea>.

وهو مدعوم من قبل جميع المتصفحات باستثناء IE <= 9 وiOS Safari 8.4.يرى جدول الدعم على caniuse.com.

$(function(){  
  $("#id").keypress(function() {  
    var maxlen = 100;
if ($(this).val().length > maxlen) {  
  return false;
}  
})
});  

مرجع قم بتعيين الحد الأقصى للطول في منطقة نص Html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top