February 3rd, 2011, 13:21
#1
عضو انجمن
راهنمایی در مورد یک مشکل بسیار جزئی
سلام
کد:
کد:
document.getElementById('j1').value+document.getElementById('j2').value;
من میخوام مقادیر j1 و j2 رو با هم جمع کنم
مثلا عدد: 5 - 4 میشه مقدارش 9
ولی با این کد میشه 45
میشه راهنمایی کنید؟
::::
مورد دوم در مورد OR هست
من میخوام چند تا فیلد با هم جمع بشن مثلا 4 تا فیلد
با کد زیر: وقتی هر 4 مقدار پر بشه جمع میشه، که من میخوام هر چقدر از مقادیر که پر هست با هم جمع بشن
یعنی توی شرط if به جای && فکر کنم باید از OR استفاده بشه؛ نه؟
کد:
کد:
if(is_int(document.getElementById('j1').value) && is_int(document.getElementById('j2').value)) document.getElementById('gimatefactor').value = document.getElementById('j1').value+document.getElementById('j2').value;
ممنون میشم راهنمایی کنید
February 3rd, 2011 13:21
# ADS
February 3rd, 2011, 15:17
#2
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
سلام
1- به علتی که 4 و 5 رشته در نظر گرفته میشه و شما عملا دو رشته رو به هم می چسبونید یعنی 4+5=45
برای حل این مشکل باید رشته رو به عدد تبدیل کنید با دستور parseFloat(عدد اعشاری) یا (عددصحیح)parseInt
2-بله باید or استفاده کنید فقط یک نکته اگر تکست خالی باشه undefined بر میگردونه که باعث خطا میشه شما بیا اول چک کن که تکست اگر خالی بود عدد 0 توش قرار بگیره تا مشکل پیش نیاد
چون 0 در جمع اثر نداره
تعداد تشکر ها از the_coder به دلیل پست مفید
February 3rd, 2011, 15:44
#3
عضو انجمن
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
میشه نمونه کدش رو بدین چون من آشنایی ندارم به جاوا
ممنون میشم
February 3rd, 2011, 16:02
#4
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
کد:
a=document.getElementById('j1').value;
b=document.getElementById('j2').value;
c=parseInt(a)+parseInt(b);
c نتیجه ای است که شما می خواین
تعداد تشکر ها از the_coder به دلیل پست مفید
February 3rd, 2011, 16:07
#5
عضو انجمن
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
مشکل حلقه if چی؟ چطوری or کنم؟
یعنی چند تا فیلده که میخوام با هم جمع بشن، توی دستور داده شده تا زمانی که 4 تمامی فیلد ها پر نشه جواب رو نمیده میخوام وقتی یکی یا دوتا فیلد پر شد نتیجه رو بده
ممنون میشم راهنمایی کنید
February 3rd, 2011, 16:27
#6
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
کد:
function is_int(value){
if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
return false;
} else {
return true;
}
}
a=document.getElementById('j1').value;
b=document.getElementById('j2').value;
c=document.getElementById('j3').value;
d=document.getElementById('j4').value;
if(is_int(a)) a=0;
if(is_int(b)) b=0;
if(is_int(c)) c=0;
if(is_int(d)) d=0;
e=parseInt(a)+parseInt(b)+parseInt(c)+parseInt(d);
e نتیجه شماست
البته اگر اعداد شما ممکنه اعداد اعشاری باشه جای parseInt از parseFloat استفاده کنید
ویرایش توسط the_coder : February 3rd, 2011 در ساعت 16:35
تعداد تشکر ها از the_coder به دلیل پست مفید
February 3rd, 2011, 16:31
#7
عضو انجمن
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
تو این حالت وقتی یکی از مقادیر خالی هست NaN میده خروجی رو
February 3rd, 2011, 16:40
#8
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
مشکلی نداره - فایل پیوست رو دانلود کنید :
فایل های پیوست شده
تعداد تشکر ها از the_coder به دلیل پست مفید
February 3rd, 2011, 17:06
#9
عضو انجمن
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
تو کد من جواب نمی ده میزنه NAN
کد:
<script>
function sum(){
if(is_int(document.getElementById('t1').value) && is_int(document.getElementById('f1').value)) document.getElementById('j1').value = document.getElementById('t1').value*document.getElementById('f1').value;
if(is_int(document.getElementById('t2').value) && is_int(document.getElementById('f2').value)) document.getElementById('j2').value = document.getElementById('t2').value*document.getElementById('f2').value;
if(is_int(document.getElementById('t3').value) && is_int(document.getElementById('f3').value)) document.getElementById('j3').value = document.getElementById('t3').value*document.getElementById('f3').value;
if(is_int(document.getElementById('t4').value) && is_int(document.getElementById('f4').value)) document.getElementById('j4').value = document.getElementById('t4').value*document.getElementById('f4').value;
if(is_int(document.getElementById('t5').value) && is_int(document.getElementById('f5').value)) document.getElementById('j5').value = document.getElementById('t5').value*document.getElementById('f5').value;
a=document.getElementById('j1').value;
b=document.getElementById('j2').value;
c=document.getElementById('j3').value;
d=document.getElementById('j4').value;
a=parseInt(a);
b=parseInt(b);
c=parseInt(c);
d=parseInt(d);
if(is_int(a)) a=0;
if(is_int(b)) b=0;
if(is_int(c)) c=0;
if(is_int(d)) d=0;
if(is_int(document.getElementById('j1').value) || is_int(document.getElementById('j2').value) || is_int(document.getElementById('j3').value)) document.getElementById('gimatefactor').value = a + b + c ;
}
function is_int(value){
if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
return true;
} else {
return false;
}
}
</script>
February 3rd, 2011, 17:10
#10
پاسخ : راهنمایی در مورد یک مشکل بسیار جزئی
کد:
function is_int(value){
if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
return true ;
} else {
return false ;
}
}
</script>
[/QUOTE]
در فانکشن is_int جای true و false رو با هم عوض کنید مشکلتون حل میشه
اگر باز نتونستید سورس رو برام پ . خ کنید تا درستش کنم
ویرایش توسط the_coder : February 3rd, 2011 در ساعت 17:14
تعداد تشکر ها از the_coder به دلیل پست مفید