[Javascript] ما هي أفضل طريقة لمحاكاة سمة هتمل الإدخال "ماكسلنغث" سمة على هتمل تكستاريا؟


Answers

لقد وجدت النصي لطيفة هنا أن توقف المستخدم من إدخال المزيد من النص بعد طول سلسلة الإدخال يتجاوز المعلمة ماكسلين، لديها فائدة لا يمكن إنكارها من البقاء في الغالب من وجه المستخدم.

كانت مشكلتي في هذا النص البرمجي هي أنه منعت أيضا مفاتيح التنقل (الأسهم، المنزل، النهاية) جنبا إلى جنب مع باكسباس وحذف، لذلك أنا تعديله قليلا، وإلا فإن المستخدم لا يمكن حذف النص الذي دخل إذا بلغ الحد الذي حدده ماكسلين (الذي سيكون نوعا من فرحان: P).

جافا سكريبت:

function imposeMaxLength(Event, Object, MaxLen)
{
        return (Object.value.length <= MaxLen)||(Event.keyCode == 8 ||Event.keyCode==46||(Event.keyCode>=35&&Event.keyCode<=40))
}

و هتمل الذي يذهب معها:

<textarea onkeypress="return imposeMaxLength(event, this, 110);" rows="4" cols="50">

يمكن للمستخدم لا يزال الحصول على جميع أنحاء هذا القيد عن طريق لصق النص في تكستاريا، ولكن يمكن حلها بسهولة داخل إمبوسماكسلنغث.

Question

يحتوي إدخال النص هتمل على سمة تسمى "ماكسلنغث"، التي تنفذها المتصفحات، والتي إذا تم تعيين كتل إدخال المستخدم بعد عدد معين من الأحرف.

عنصر هتمل تكستاريا، من ناحية أخرى، لا تملك هذه السمة. هدفي هو محاكاة سلوك ماكسلنغث على هتمل تكستاريا. المتطلبات:

  • كحد أدنى، إظهار (كس تغيير) أن المستخدم كتابة عدد كبير جدا من الأحرف.
  • من الناحية المثالية، منع المستخدم من كتابة المزيد من الأحرف، كما يحدث على إدخال هتمل.

ومن المعلوم أن التحقق من جانب الخادم يجب التحقق من طول مرة أخرى. هنا أنا أركز على جانب العميل فقط.

سؤالي هو: ما هي أنظف طريقة جانب العميل لمحاكاة ماكسلنغث على هتمل تكستاريا؟ من الناحية المثالية، أشر إلى مصدر مفتوح ومثبت، وهو جزء من جافا سكريبت استخدمته.




وهنا المساعد مسج أن أستخدم يسمى "ببساطة العد" الذي يسمح لك لإضافة عداد إلى تكستاريا. واحدة من الميزات هو أنه يسمح لك لتعيين الحد الأقصى لعدد الأحرف المسموح بها في حقل ويفرض ذلك بحيث لا يمكن للمستخدم تجاوز هذا الحد.

في ما يلي صفحة جيثب ل سيمبلي كونتابل:
https://github.com/aaronrussell/jquery-simply-countable/

يمكنك استخدامه مثل هذا ...

$('#my_textarea').simplyCountable({
    counter: '#counter',
    maxCount: 140,
    strictMax: true
});



استخدام إطار جافا سكريبت ( النموذج الأولي ، مسج ، وما إلى ذلك) بحيث يكون لديك عبر الحدث دعم الحدث. كتابة بطانة واحدة على keyup لمنع المستخدم من دخول ماكسلنغث.

ملاحظة: سيكون عليك أيضا التحقق من طول طول الخادم.




هنا هو شفرة جافا سكريبت التي تعمل موافق بالنسبة لي:

onBlur="if (this.value.length > 500) { alert('The notes field only allows 500 characters. You have ' + this.value.length + ' characters.'); this.focus(); return false; }"