PDA

View Full Version : جدا کردن سه رقم سه رقم عدد هنگام تایپ در textbox



mhaghp
دوشنبه 14 فروردین 1391, 12:09 عصر
چگونه می توان وقتی در textbox عدد وارد می کنیم هنگام تایپ سه رقم سه رقم جدا شود

ahmad156
دوشنبه 14 فروردین 1391, 12:12 عصر
با جاوااسکریپت و بهتر از اون jquery:لبخندساده:

mhaghp
دوشنبه 14 فروردین 1391, 12:20 عصر
با جاوااسکریپت و بهتر از اون jquery:لبخندساده:
خوب چگونه می شود این کار را با جاوا اسکریپت انجام داد؟

ahmad156
دوشنبه 14 فروردین 1391, 12:33 عصر
شما با استفاده از

$("#yourtxtID").val().length

طول textbox خود رو دارین.و با استفاده از

var txt=$("#yourtxtID").val();

مقدار textbox رو دارین.
با استفاده از

$("#yourtxtID").val(txt+',')

میتونین مقدار جدید که میتونه منظور شما رو پیاده سازی کنه رو جایگزین کنین.
البته من کلیات رو گفتم.جزییات رو باید خودتون پیاده سازی کنین
البته این کارا رو توی onkeypressباید نوشت

mbasirati
شنبه 11 خرداد 1392, 12:59 عصر
قطعه کد کاملی برای این کار وجود داره؟
توی سایت جیب (http://jeeb.ir) برای فیلدهای عددی این کارو کردن. و جالب اینه که حتی اگه عدد رو داخل تکست باکس کپی هم بکنی بازم جداکننده رو اضافه میکنه.
من خیلی سرچ کردم و کدای زیادی پیدا کردم اما هرکدوم یه مشکلی داشتن.

mbasirati
شنبه 11 خرداد 1392, 13:22 عصر
function pageLoad() {
$('input.digits').keyup(function (event) {
// skip for arrow keys
if (event.which >= 37 && event.which <= 40) {
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/g, '');
// the following line has been simplified. Revision history contains original.
$this.val(num.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
});
}


بالاخره پیدا کردم. البته این کد رو خیلی سایتا گذاشته بودن ولی به جای keyup با keypress نوشته بودن و برای همین اشتباه کار میکرد.
شما فقط کافیه که به تکست باکسی که میخواید این ویژگی رو داشته باشه کلاس digits رو بدید.

mgh64120
یک شنبه 30 آذر 1393, 11:35 صبح
function pageLoad() {
$('input.digits').keyup(function (event) {
// skip for arrow keys
if (event.which >= 37 && event.which <= 40) {
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/g, '');
// the following line has been simplified. Revision history contains original.
$this.val(num.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
});
}


بالاخره پیدا کردم. البته این کد رو خیلی سایتا گذاشته بودن ولی به جای keyup با keypress نوشته بودن و برای همین اشتباه کار میکرد.
شما فقط کافیه که به تکست باکسی که میخواید این ویژگی رو داشته باشه کلاس digits رو بدید.
سلام
این کد روی فایرفاکس جواب نمیده
بهتره ازاین نمونه (http://jsfiddle.net/AqDda/) استفاده کنید
بدرود...

mbasirati
یک شنبه 30 آذر 1393, 15:56 عصر
سلام
این کد روی فایرفاکس جواب نمیده
بهتره ازاین نمونه (http://jsfiddle.net/AqDda/) استفاده کنید
بدرود...

من روی فایرفاکسم تست کردم، جواب میده.
درضمن نمونه ای که شما گذاشتید موقع تایپ در تکست باکس عمل نمیکنه و فقط وقتی فوکوس از روی تکست باکس میره سه رقم سه رقم جدا میکنه.

hosein_dig
شنبه 09 اسفند 1393, 21:28 عصر
function pageLoad() {
$('input.digits').keyup(function (event) {
// skip for arrow keys
if (event.which >= 37 && event.which <= 40) {
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/g, '');
// the following line has been simplified. Revision history contains original.
$this.val(num.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
});
}


بالاخره پیدا کردم. البته این کد رو خیلی سایتا گذاشته بودن ولی به جای keyup با keypress نوشته بودن و برای همین اشتباه کار میکرد.
شما فقط کافیه که به تکست باکسی که میخواید این ویژگی رو داشته باشه کلاس digits رو بدید.

آقا دمت گرم خیلی مفید بود ولی اگه بخام تو دیتا بیس ذخیرش کنم با همین ممیزا دخیره میشه شما کاری کردی برای این داستان
ممنون

mbasirati
یک شنبه 10 اسفند 1393, 18:33 عصر
آقا دمت گرم خیلی مفید بود ولی اگه بخام تو دیتا بیس ذخیرش کنم با همین ممیزا دخیره میشه شما کاری کردی برای این داستان
ممنون

برای ذخیره تو دیتابیس بهتره که این جداکننده ها رو حذف کنی که اونو با یه تابع (توی هر زبون برنامه نویسی ای که کار میکنی مث سی شارپ، پی اچ پی و ...) میتونی انجام بدی. فقط کافیه این جداکننده رو replace کنی با تهی

رضا قربانی
یک شنبه 03 آبان 1394, 23:42 عصر
بهترین روش : جدا سازی هنگام تایپ کردن :




function Comma(Num) {
Num += '';
Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
x = Num.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1))
x1 = x1.replace(rgx, '$1' + ',' + '$2');
return x1 + x2;
}





onkeyup="javascript:this.value=Comma(this.value);"

behzadamin12
یک شنبه 28 مهر 1398, 19:57 عصر
سلام ببیند روش ساده ای هستش
اما بستگی داره به صورتی این کارو انجام میدید
فارق از زبان برنامه نویسی بک اندی که استفاده می کنید به نظرم باید به صورت ذیل اینکارو انجام بدید


function separateNum(value, input) {
/* seprate number input 3 number */
var nStr = value + '';
nStr = nStr.replace(/\,/g, "");
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
if (input !== undefined) {

input.value = x1 + x2;
} else {
return x1 + x2;
}
}حالا مثال کاملترش تو لینک ذیل قابل مشاهده هست

https://jobteam.ir/ProductUser/104-Jquery-Seperator-Number

mina damirchi
دوشنبه 14 شهریور 1401, 10:11 صبح
بهترین روش : جدا سازی هنگام تایپ کردن :




function Comma(Num) {
Num += '';
Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
Num = Num.replace(',', ''); Num = Num.replace(',', ''); Num = Num.replace(',', '');
x = Num.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1))
x1 = x1.replace(rgx, '$1' + ',' + '$2');
return x1 + x2;
}





onkeyup="javascript:this.value=Comma(this.value);"

:قلب: خیلی عالی بود، ممنون