PDA

View Full Version : مبتدی: شمارش تعداد کارکتر در textbox



kafco00
دوشنبه 25 آذر 1392, 16:05 عصر
سلام عرض شد.
خسته نباشید

دوستان من یک کدی نیاز دارم که تعداد کارکتر داخل یک textarea رو بشماره.
بذارید بگم برای چی میخوام تا شاید بهتر بتونید راهنمایی کنید.
برای ارسال پیام کوتاه می خوام. دیدید که زیر تکس باکس می نویسید هر کلمع یا اسپیس یک کارکتر کم میشه؟
حال من می خوام اگر حروف فارسی بود از 70 شروع کنه و اگر با حروف انگیسی بود از 160 البته کدش نوشته بشه می تونم تغیر بدم.
اگر بشه که جوری نوشته بشه مثلن هر 70 کاراکتر یک پیام حساب بشه و کنارش مثلن بنویسه 1 بعد از 70 تای بعدی بنویسه 2 و همین طور برای 160 تایی اگر بشه که عالی میشه
دوستان می تونند همچین کدی در اختیر ما قرار دهند؟

سپاس گذارم

Jarvis
دوشنبه 25 آذر 1392, 18:52 عصر
من کد مورد نظر شما رو ندارم
ولی یه آموزش خیلی خیلی خوب دارم که نحوه ی درست کردن چنین چیزی رو به شما یاد میده
این آموزش ها مربوط به سایت TheNewBoston (http://www.thenewboston.org/tutorials.php) هستش که از قسمت jQuery ـیش (http://www.thenewboston.org/list.php?cat=32) انتخاب کردم براتون
Character Counting Remaining on Textarea Part 1 (http://www.thenewboston.org/watch.php?cat=32&number=45)
Character Counting Remaining on Textarea Part 2 (http://www.thenewboston.org/watch.php?cat=32&number=46)

فیلم ها توی YouTube آپلود شده ، نیاز به پــ ـروکـ ــســ ـــی دارن

پکیج کاملش رو می تونید به صورت فشرده شده با حجم 990 مگابایت از اینجا (http://ehsanavr.com/?p=1690) دریافت کنید
موفق باشید.

Javidhb
دوشنبه 25 آذر 1392, 20:47 عصر
برای حروف انگلیسی... (برای حروف فارسی باید یه شرط بزارید و اگه فارسی بود محدود کاراکتر رو 70 کنید.)
html:


<textarea id="myTextarea"></textarea>
<p>
<span id="charactersUsed"></span> / <span id="totalCharacter"></span>
</p>
js:

var totalCharacter = 160; //محدودیت کاراکترها

$('#charactersUsed').html(0);

$('#myTextarea').on('keyup', function(e){
var charactersUsed = $(this).val().length; //طول رشته تایپ شده

if(charactersUsed > totalCharacter)
{
charactersUsed = totalCharacter;
$(this).val($(this).val().substr(0, totalCharacter));
$(this).scrollTop($(this)[0].scrollHeight);
}

$('#charactersUsed').html(charactersUsed);
});

$('#totalCharacter').html(totalCharacter);



برای چک کردن کاراکتر غیر انگلیسی هم میتونید از regex استفاده کنید یا از search (http://www.w3schools.com/jsref/jsref_search.asp)استفاده کنید.


دمـــو (http://jsfiddle.net/SBe3d/)

kafco00
سه شنبه 26 آذر 1392, 12:29 عصر
سلام عرض شد

دوستان واقعا ممنونم ازتون
ولی یه سوالی ذهنم رو درگیر کرده. اگر کاربر مثلن 60 کلمه رو فارسی تایپ کرد و فقط 1 کلمه رو انگیسی تایپ کرد باز از همون 70 تا حساب می کنه یا اتومات از 160 حساب می کنه؟
مورد بعدی اینکه اقای Javidhb (http://barnamenevis.org/member.php?37577-Javidhb) عزیز , کد هیچ مشکلی نداره جز اینکه بعد 160 یا همون 70 تا دیگه اجازه تایپ نمیده. من نمی خوام اینجوری باشه میخوام زمانی که 71 امین کلمه تاپین شد کنارش یک عدد باشه که مثلن بطور پیشفرض 1 باشه و بعد از تموم شد 70 کلمه اون یکی بره بالا و بشه 1. که به کاربر نشون بده که یک پیامک تا به اینجا شده.
اگر این هم اکی بشه که خیلی عالی میشه.

سپاس گذارم

Javidhb
سه شنبه 26 آذر 1392, 17:16 عصر
مخابرات و ایرانسل که با یه کلمه انگلیسی کل اس ام اس رو انگلیسی حساب میکنن!!!

html:


<textarea id="myTextarea"></textarea>
<p><span id="charactersUsed">0</span> | (character per age <span id="charPerPage"></span> )</p>
<p id='page'>1</p>


js:

var charPerPage = 160; //تعداد کاراکترها توی هر صفحه

$('#charPerPage').html(charPerPage);

$('#myTextarea').on('keyup', function(e){
var charactersUsed = $(this).val().length;
var pageCount = Math.ceil(charactersUsed / charPerPage); //محاسبه تعداد صفحات

$('#page').html(pageCount);
$('#charactersUsed').html(charactersUsed);
});




دمـــو (http://jsfiddle.net/xfjhY/1/)