PDA

View Full Version : سوال: نحوه number_format کردن فیلد ورودی در html



soheil.1985
چهارشنبه 22 آبان 1392, 23:49 عصر
با درود خدمت اساتید محترم
من یک فرم html دارم و می خوام تو یکی از فیلها که قیمت باید وارد شه ، وقتی کاربر داره عدد مربوط به قیمت رو وارد می کنه بصورت اتومات عدد وارد شده 3 رقم 3 رقم جدا بشه و کاما بخوره.
دقیقا مثل تابع number_format تو php
با این تفاوت که می خوام این 3 رقم 3 رقم جدا شدن در هنگام ورود اطلاعات توسط کاربر انجام بشه.
با سپاس

SilverLearn
پنج شنبه 23 آبان 1392, 01:54 صبح
تاپیک زیر می تونه بهتون کمک کنه ...

http://www.silverlearn.ir/thread623.html

soheil.1985
پنج شنبه 23 آبان 1392, 03:01 صبح
SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) یک دنیا سپاس از پیگیری و پاسختون.
فقط یک سوال. کدی که شما فرمودید باعث می شه زمانی که عدد تو فیلد تایپ می شه و بعد می ریم فیلد بعدی یا از فیلد میایم بیرون ، عدد 3 رقم 3 رقم جدا بشه.
آیا کدی هم وجود داره که بشه همزمان با اینکه عددی تو فیلد تایپ می شه ، تو همون لحظه این جداسازی انجام بشه؟
با سپاس مجدد

soheil.1985
پنج شنبه 23 آبان 1392, 03:16 صبح
SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) عزیز یک کد پیدا کردم ، تست هم کردم جواب داد.
ممنون از شما و همه اساتید

در این تاپیک
http://forum.persiantools.com/t44121.html

این هم کدش
<script> function moneyCommaSep(ctrl) { var separator = ","; var int = ctrl.value.replace ( new RegExp ( separator, "g" ), "" ); var regexp = new RegExp ( "\\B(\\d{3})(" + separator + "|$)" ); do { int = int.replace ( regexp, separator + "$1" ); } while ( int.search ( regexp ) >= 0 ) ctrl.value = int; } function removeComma(ctrl) { var separator = ","; ctrl.value = ctrl.value.replace ( new RegExp ( separator, "g" ), "" ); } </script> <INPUT size=28 name=Deposit value="" onKeyUp="javascript:moneyCommaSep(this);">

SilverLearn
پنج شنبه 23 آبان 1392, 10:14 صبح
خواهش میکنم ...

دوست عزیز کد بالا زیاد تفاوتی با کد اعلام شده نداره

فقط در قسمت



onKeyUp="javascript:moneyCommaSep(this);


اومده تابع رو صدا زده که با تایپ هر عدد بیاد و چک کنه و سه رقم سه رقم جدا کنه ...

موفق باشید

soheil.1985
پنج شنبه 23 آبان 1392, 19:46 عصر
SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) گرامی درود و ممنون از پیگیری و پاسخت.
کد کار می کنه ولی مشکل دوم اینه که وقتی مثلا عدد 1000 رو تایپ می کنیم تبدیل میشه به 1,000 و تو دیتابیس هم به همین صورت خیره می شه.
در شرایطی که من می خوام وقتی صفحه post می شه فیلدی که بصورت 1,000 پر شده دوباره به حالت عادی عددی 1000 برگرده و به همین صورت بدون کاما خیره بشه.
تابع removeComma رو که فرمودی رو هم زدم ولی جواب نداد.
اگر راهنماییم کنی خیلی لطف کردی.
با سپاس

SilverLearn
پنج شنبه 23 آبان 1392, 19:51 عصر
دوست عزیز removeComma برای همین مشکل نوشته شده دیگه هر جا که میخوای فرم رو post کنید با استفاده از کد جی اس زیر به حالت اول برگردونید ....




this.value = removeComma( this.value );

soheil.1985
پنج شنبه 23 آبان 1392, 20:20 عصر
SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) اون تابع رو که فرمودی زدم ولی جواب نمی ده باور کنید. هنوز با کاما خیره می کنه.
ببینید من با php برنامه رو نوشتم و فیلدی دارم بنام amount
وقتی پستش می کنم با کاما خیره می کنه.
اصلا نیمی دونم این کدی که فرمودی رو کجا باید بذارم.
آیا کد php هم وجود داره که کاماها رو حف کنه.
اگر نه لطفا با اینکه می دونم وقتتون گرفته می شه در حد مبتدی توضیح بدید که باید کدهای بالا رو دقیقا چکار کنم تا کاما ها رو حذف کنه؟
با سپاس

SilverLearn
پنج شنبه 23 آبان 1392, 20:26 عصر
دوست عزیز شما می تونید از تابع زیر که براتون میگذارم برای حذف کاما استفاده کنید :



function doCombine18() {
var txt1 = document.getElementById('txt1'),
txt2 = document.getElementById('txt2');

txt2.value = txt1.value.split(',').join('');
}


خوب همونطور که از کد پیداست ما دوتا تکس میگذاریم بعد اولی رو با دومی پر می کنیم (بدون کاما ها ) و شما می تونی تکست دومی رو post کنی

البته این روش ساده رو گفتم که دیگه کار اضافی نخواید بکنید

SilverLearn
پنج شنبه 23 آبان 1392, 20:28 عصر
البته از کد زیر هم می تویند استفاده کنید (ساده تر)



document.getElementById('txt2').value = document.getElementById('txt1').value.replace(/,/g, '');

soheil.1985
پنج شنبه 23 آبان 1392, 20:35 عصر
SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) عزیز می دونم خستتون کردم شردمنده.
الان من چطوری می تونم تکست دوم رو پست کنم؟
باید تو تگ input چی بنویسم؟
شما اینو فرمودید:


<input type="text"
onblur="this.value = addComma( this.value );"
onfocus="this.value = removeComma( this.value );" />

حالا این تابع جدید رو چطوری بیارم؟و چطور فقط تکست دوم رو پست کنم؟
با سپاس

SilverLearn
پنج شنبه 23 آبان 1392, 20:38 عصر
میخواید فرمتون رواینجا آپلود کنید تا یه نگاهی بهش بندازیم ؟
یا پیام خصوصی بدید ...

ابوذر محمودی
پنج شنبه 23 آبان 1392, 20:44 عصر
soheil.1985 عزیز ، تاپیکتون همونطوری که تو عنوان ذکر کردین مربوط به HTML هست ، که به جاوا اسکریپت هم کشیده شده ، بهتر نیست هر سوالی رو تو بخش خودش مطرح کنین؟

soheil.1985
پنج شنبه 23 آبان 1392, 21:01 عصر
دوست گرامی والا من اولش اصلا نمی دونستم چرو می شه تو html اینکارو کرد که بعد با راهنمایی استاد گرامی آقای SilverLearn (http://barnamenevis.org/member.php?48668-SilverLearn) متوجه شدم این کار با جاوااسکریپت انجام می شه.
به هر حال با پوزش از تاپیک غیر مربوط
کامیاب باشید