PDA

View Full Version : سوال: جدا کردن سه رقم سه رقم محتویات TextBox برای نمایش واحد پولی



mzosan817
دوشنبه 19 مهر 1389, 13:03 عصر
<script language="javascript" type="text/javascript">
function numeralsOnly(evt) {
evt = (evt) ? evt : ((event) ? event : null);
var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
alert("Enter numerals only in this field.");
returnfalse;
}
else
returntrue;
}

function prepareValue() {
var bb = document.getElementById("txtMablagh");
var searchStr = ",";
var replaceStr = "";
var re = new RegExp(searchStr, "g");
bb = bb.replace(re, replaceStr);
return bb;
}

function formatTextBox(strToFormat) {
var strTextBox = strToFormat;
var j = strTextBox.length;
var boolCheck = true;
var result = "";
while (boolCheck) {
i = j - 3;
if (i < 1) boolCheck = false;
var m = strTextBox.substring(j - 3, j);
result = "," + m + result;
j = i
}

document.getElementById("txtMablagh").value = result.substring(1, result.length);
}
</script>
<asp:TextBoxrunat="server"id="txtMablagh"MaxLength="8"onkeypress="return numeralsOnly(event);"onkeyup="var m = prepareValue();formatTextBox(m);" Width="20%"/>

چرا این کد وقتی به خط var bb = document.getElementById("txtMablagh"); میرسه خطا میده. البته من از asp3.5 استفاده میکنم ممکنه ب علت ورژن برنامه باشه
ممنون میشم یکی راهنماییم کنه با این کد میتونم مقدار یه تکس باکس رو به فرمت پولی تبدیل کنم

خطایی هم که میده رو ضمیمه کردم ممنون میشم هر چه سریعتر جواب منو بدین ببیتید من فقط میخوام تمامی تکس باکس های داخل برنامه که مربوط به مقادیر پولی هستند رو به فرمت پولی تبدیل کنم یعنی سه رقم سه رقم از هم جدا کنم همین، حالا چطوری من میتونم این کارو انجام بدم؟


لطفا از این پس کدهای خودتون رو Decorate کنید تا قابل خوندن باشه!
اینجا بخش JavaScript هستش نه Java. این دو خیلی متفاوتن و نباید (حتی به اشتباه) یکی از این واژه ها رو جای دیگری استفاده کرد.

mrbm_2007
دوشنبه 19 مهر 1389, 18:28 عصر
چه errorی میده؟

AmirHarirbafan
دوشنبه 19 مهر 1389, 23:01 عصر
احتمالا txtMablagh رو نمیتونه پیدا کنه ، چون ASP.NET آیدی ها رو طبق نظر خودش ایجاد میکنه ، و معمولا یک پیشوند به اول آیدی ها میچسبونه
اگه هنوز مشکلتون حل نشده ، کدتونو داخل تگ "کد" ، بزارید تا بشه خوندش

mehdi.mousavi
سه شنبه 20 مهر 1389, 14:02 عصر
سلام.
مشکل کد شما در خط 14 هستش:

var bb = document.getElementById("txtMablagh");

با این کار، bb میشه Input Element شما. در صورتیکه شما چند خط بعد میخواهید با RegEx کاری روی محتوای اون TextBox انجام بدید،
پس در حقیقت نیاز به گرفتن Value ی اون دارید. کد زیر رو جای خط 14 بنویسید، مشکل رفع میشه:

var bb = document.getElementById("txtMablagh").value;

موفق باشید.

mzosan817
چهارشنبه 21 مهر 1389, 07:23 صبح
بار هم خطا میده دقیقا عین خطایی که قبلا براتون ارسال کردم
تورو خدا یکی کمک کنه.چطوری میتونم به یه تکس باکس فرمت پولی بدم؟

mehdi.mousavi
چهارشنبه 21 مهر 1389, 09:37 صبح
بار هم خطا میده دقیقا عین خطایی که قبلا براتون ارسال کردم
تورو خدا یکی کمک کنه.چطوری میتونم به یه تکس باکس فرمت پولی بدم؟

سلام.
هر جا که کد زیر رو نوشته اید

document.getElementById("txtMablagh");

جاش اینو بنویسید:

document.getElementById('<%=txtMablagh.ClientID%>');

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

در هر حال، نگاهی به این کد (http://www.spiration.co.uk/post/197/Javascript%20-%20Currency%20Formatting%20in%20a%20text%20box) بندازید شاید مشکلتون رو حل کنه.

موفق باشید.