چگونه می توان وقتی در textbox عدد وارد می کنیم هنگام تایپ سه رقم سه رقم جدا شود
چگونه می توان وقتی در textbox عدد وارد می کنیم هنگام تایپ سه رقم سه رقم جدا شود
با جاوااسکریپت و بهتر از اون jquery
شما با استفاده از
$("#yourtxtID").val().length
طول textbox خود رو دارین.و با استفاده از
var txt=$("#yourtxtID").val();
مقدار textbox رو دارین.
با استفاده از
$("#yourtxtID").val(txt+',')
میتونین مقدار جدید که میتونه منظور شما رو پیاده سازی کنه رو جایگزین کنین.
البته من کلیات رو گفتم.جزییات رو باید خودتون پیاده سازی کنین
البته این کارا رو توی onkeypressباید نوشت
قطعه کد کاملی برای این کار وجود داره؟
توی سایت جیب برای فیلدهای عددی این کارو کردن. و جالب اینه که حتی اگه عدد رو داخل تکست باکس کپی هم بکنی بازم جداکننده رو اضافه میکنه.
من خیلی سرچ کردم و کدای زیادی پیدا کردم اما هرکدوم یه مشکلی داشتن.
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 : شنبه 11 خرداد 1392 در 14:34 عصر
سلام
این کد روی فایرفاکس جواب نمیده
بهتره ازاین نمونه استفاده کنید
بدرود...
بهترین روش : جدا سازی هنگام تایپ کردن :
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;
}
کد HTML:onkeyup="javascript:this.value=Comma(this.value);"
سلام ببیند روش ساده ای هستش
اما بستگی داره به صورتی این کارو انجام میدید
فارق از زبان برنامه نویسی بک اندی که استفاده می کنید به نظرم باید به صورت ذیل اینکارو انجام بدید
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-J...perator-Number