PDA

View Full Version : سوال: جدا کردن سه رقم سه رقم اعداد در تکست باکس



malihehshajari
جمعه 29 دی 1391, 13:18 عصر
سلام
چطور میتونم وقتی کاربر عدد رو در تکست باکس وارد میکنه سه رقم سه رقم با کاما از هم جدا کنم
با تشکر

fakhravari
جمعه 29 دی 1391, 13:39 عصر
<script>

function intFormat(number) {
var regex = /(\d)((\d{3},?)+)$/;
number = number.split(',').join('');

while(regex.test(number)){
number = number.replace(regex, '$1,$2');
}
return number;
}

function numFormat(number) {
var pointReg = /([\d,\.]*)\.(\d*)$/, f;
if(pointReg.test(number)){
f = RegExp.$2;
return intFormat(RegExp.$1) + '.' + f;
}
return intFormat(number);
}

</script>
<input type="text" id="txt" onchange="this.value = numFormat(this.value)" onkeyup="this.blur();this.focus()" />

malloc
جمعه 29 دی 1391, 17:38 عصر
هرجند بنظر من بهتره اینکارو تو رویداد onblur کنید . که کمتر کار انجام بده.

morteza_mokhtari
جمعه 29 دی 1391, 23:52 عصر
سلام دوست عزیز شما برای اینکار متونید ازکنترل MaskedEditExtender درون ajaxtoolkit استفاده کنید موقعی که دانلود کردید و فایل دانلود رو اکسترکت کردید داخلش یه نمونه سایت هستش که نمونه کد گذاشته و به راحتی می توانید ازش استفاده کنید.

shahram hosseini
شنبه 30 دی 1391, 17:13 عصر
برای textbox توضیحی ندارم.ولی برای gridview شما می توانید برای فیلدهای مورد نظر خاصیت DataFormatString را مساوی {0:N0} قرار دهید.

shahram hosseini
جمعه 06 بهمن 1391, 13:58 عصر
خاصیت AutoPostBack از تکست باکس مورد نظر را True کن،سپس بر روی تکست باکس دایل کلیک کرده و کد زیر را برای آن بنویس :
98977

website.expert
جمعه 06 بهمن 1391, 15:29 عصر
دوست عزیز shahram hosseini (http://barnamenevis.org/member.php?278015-shahram-hosseini) این معقولانه نیست که واسه یک text یه پست بک انجام بشه برای اینجور کارها از javascript یا jquery استفاده می کنن(مثل پست2).
بهتره تو این زمینه بیشتر مطالعه کنی.

myasahmadi
جمعه 06 بهمن 1391, 16:36 عصر
از اسکریپت زیر استفاده کن

function SplitDigit(Digit, Splictor) {
/*
Please Dont Remove No Line : Coded By Ata Amini(id1385)
Not Allwed In Splictor "\"
SAMPLE = SplitDigit('1200000',',');
SAMPLE = Number2Farsi(SplitDigit('1200000','.'));
*/
//DEFINTION(S)
Digit = Digit.split(',').join('');
var DigitsLen = Digit.length;
var CurrentDigit = '';
var FinalDigit = '';
var DefaultSplictor = '';
var DigitArray = new Array();
var DigitREV = new Array();
var N = 0;
// SPLICTOR STATE
if (Splictor == "") { DefaultSplictor = ',' } else { DefaultSplictor = Splictor; }
// SUBSTRING

for (var i = 0; i <= DigitsLen - 1; i++) {
CurrentDigit = Digit.substring(i, i + 1); //SUBSTRING DIGITS
DigitArray += CurrentDigit; // SETTING IN ARRAY
} // FOR
// REV
for (var i = 0; i <= DigitArray.length - 1; i++) {
var K = (DigitArray.length - 1) - i;
N++;
if (N == 1 || N == 2 || N == 3) {
DigitREV += DigitArray[K];
} else if (
N >= 3) {
N = 1; DigitREV += DefaultSplictor + DigitArray[K];
}
} // FOR
// Final
for (var i = 0; i <= DigitREV.length - 1; i++) {
var L = (DigitREV.length - 1) - i;
FinalDigit += DigitREV[L];
} // FOR

return FinalDigit; // Output
}

حال در تعریف تکس باکس بصورت زیر عمل می کنیم

<asp:TextBox ID="TextBox1" runat="server" onkeyup="this.value =SplitDigit(this.value,',')"></asp:TextBox>

meisam3322
جمعه 06 بهمن 1391, 19:41 عصر
آیا خودتون از کد JS که گذاشتین استفاده کردین ؟؟؟

website.expert
شنبه 07 بهمن 1391, 01:24 صبح
آیا خودتون از کد JS که گذاشتین استفاده کردین ؟؟؟

چرا میگید؟منظورتون چیه؟
من کدشون رو تریس نکردم ولی تست کردم و جواب داد.

mRizvandi
پنج شنبه 03 اسفند 1391, 20:07 عصر
خب یه نکته داره، منم تست کردم جواب گرفتم
نکته اینه که کنترل تکست باکس در ASP.NET رویداد onkeyup نداره، به خاطر بالابردن امنیت.
اما اگر شما همین کد رو استفاده کنی، چون در نهایت به html تبدیل میشه و تگ input این رویداد رو داره، بدرستی کار میکنه
تشکر می کنم از شما