View Full Version : سوال: مشکل در جمع کردن دو متغیر
padidehco
یک شنبه 24 شهریور 1392, 21:37 عصر
مشکل این کد چیه؟
عدد را باهم جمع نمی کنه
<input id="test" type="text">
<input id="test1" type="text">
<p id="p"></p>
<input type="submit" value="click" onclick="ftest()">
<script>
function ftest()
{
var e = document.getElementById('test').value;
var q = document.getElementById('test1').value;
document.getElementById('p').innerHTML = e + q;
}
</script>
Javidhb
یک شنبه 24 شهریور 1392, 22:42 عصر
http://www.w3schools.com/jsref/jsref_parseint.asp
padidehco
دوشنبه 25 شهریور 1392, 15:45 عصر
سلام
من کد ها را درست کردم
یک مشکل داره
وقتی عدد وارد نمی کنم و یکی از تکست باکس ها خالی می مونه NaN بر می گردونه
و دوم اینکه عدد را سه رقم سه رقم از هم جدا کردم و موقع محاسبه فقط کل عدد را محاسبه نمی کنه
لطفا خودتون تست کنید و عددی که می خواهید وارد کنید لطفا بالای 1000 باشه
<script src='jquery.js'></script>
<script type="text/javascript">
/* jquerypriceformat.com */
(function($){$.fn.priceFormat=function(options){va r defaults={prefix:'US$ ',suffix:'',centsSeparator:'.',thousandsSeparator: ',',limit:false,centsLimit:2,clearPrefix:false,cle arSufix:false,allowNegative:false,insertPlusSign:f alse};var options=$.extend(defaults,options);return this.each(function(){var obj=$(this);var is_number=/[0-9]/;var prefix=options.prefix;var suffix=options.suffix;var centsSeparator=options.centsSeparator;var thousandsSeparator=options.thousandsSeparator;var limit=options.limit;var centsLimit=options.centsLimit;var clearPrefix=options.clearPrefix;var clearSuffix=options.clearSuffix;var allowNegative=options.allowNegative;var insertPlusSign=options.insertPlusSign;if(insertPlu sSign)allowNegative=true;function to_numbers(str){var formatted='';for(var i=0;i<(str.length);i++){char_=str.charAt(i);if(formatted .length==0&&char_==0)char_=false;if(char_&&char_.match(is_number)){if(limit){if(formatted.len gth<limit)formatted=formatted+char_}else{formatted=for matted+char_}}}return formatted}function fill_with_zeroes(str){while(str.length<(centsLimit+1))str='0'+str;return str}function price_format(str){var formatted=fill_with_zeroes(to_numbers(str));var thousandsFormatted='';var thousandsCount=0;if(centsLimit==0){centsSeparator="";centsVal=""}var centsVal=formatted.substr(formatted.length-centsLimit,centsLimit);var integerVal=formatted.substr(0,formatted.length-centsLimit);formatted=(centsLimit==0)?integerVal:i ntegerVal+centsSeparator+centsVal;if(thousandsSepa rator||$.trim(thousandsSeparator)!=""){for(var j=integerVal.length;j>0;j--){char_=integerVal.substr(j-1,1);thousandsCount++;if(thousandsCount%3==0)char_ =thousandsSeparator+char_;thousandsFormatted=char_ +thousandsFormatted}if(thousandsFormatted.substr(0 ,1)==thousandsSeparator)thousandsFormatted=thousan dsFormatted.substring(1,thousandsFormatted.length) ;formatted=(centsLimit==0)?thousandsFormatted:thou sandsFormatted+centsSeparator+centsVal}if(allowNeg ative&&(integerVal!=0||centsVal!=0)){if(str.indexOf('-')!=-1&&str.indexOf('+')<str.indexOf('-')){formatted='-'+formatted}else{if(!insertPlusSign)formatted=''+f ormatted;else formatted='+'+formatted}}if(prefix)formatted=prefi x+formatted;if(suffix)formatted=formatted+suffix;r eturn formatted}function key_check(e){var code=(e.keyCode?e.keyCode:e.which);var typed=String.fromCharCode(code);var functional=false;var str=obj.val();var newValue=price_format(str+typed);if((code>=48&&code<=57)||(code>=96&&code<=105))functional=true;if(code==8)functional=true;i f(code==9)functional=true;if(code==13)functional=t rue;if(code==46)functional=true;if(code==37)functi onal=true;if(code==39)functional=true;if(allowNega tive&&(code==189||code==109))functional=true;if(insertPl usSign&&(code==187||code==107))functional=true;if(!functio nal){e.preventDefault();e.stopPropagation();if(str !=newValue)obj.val(newValue)}}function price_it(){var str=obj.val();var price=price_format(str);if(str!=price)obj.val(pric e)}function add_prefix(){var val=obj.val();obj.val(prefix+val)}function add_suffix(){var val=obj.val();obj.val(val+suffix)}function clear_prefix(){if($.trim(prefix)!=''&&clearPrefix){var array=obj.val().split(prefix);obj.val(array[1])}}function clear_suffix(){if($.trim(suffix)!=''&&clearSuffix){var array=obj.val().split(suffix);obj.val(array[0])}}$(this).bind('keydown.price_format',key_check); $(this).bind('keyup.price_format',price_it);$(this ).bind('focusout.price_format',price_it);if(clearP refix){$(this).bind('focusout.price_format',functi on(){clear_prefix()});$(this).bind('focusin.price_ format',function(){add_prefix()})}if(clearSuffix){ $(this).bind('focusout.price_format',function(){cl ear_suffix()});$(this).bind('focusin.price_format' ,function(){add_suffix()})}if($(this).val().length>0){price_it();clear_prefix();clear_suffix()}})};$. fn.unpriceFormat=function(){return $(this).unbind(".price_format")};$.fn.unmask=function(){var field=$(this).val();var result="";for(var f in field){if(!isNaN(field[f])||field[f]=="-")result+=field[f]}return result}})(jQuery);
</script>
<fieldset id="fieldset9" style="direction:rtl">
<legend class="titr-form">ماشین حساب</legend>
<table style="font-family: tahoma;font-size: 12px;width: 100%;" border="1">
<tbody>
<tr>
<td style="text-align: center;"><strong>رديف</strong></td>
<td style="text-align: center;"><strong>ماشیت حساب</strong></td>
<td style="text-align: center;"><strong>ارزش - ريال</strong></td>
</tr>
<tr>
<td style="text-align: center;"><strong>1</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="q-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>2</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="w-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>3</strong></td>
<td> عدد: </td>
<td><input type="text" style="width:100px;" name="" id="e-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>4</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="r-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>5</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="t-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>6</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="y-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>7</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="u-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>8</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name=" " id="i-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>9</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name="" id="o-arzesh" class="rial"></td>
</tr>
<tr>
<td style="text-align: center;"><strong>10</strong></td>
<td>عدد: </td>
<td><input type="text" style="width:100px;" name=" " id="p-arzesh" class="rial"></td>
</tr>
<tr>
<td colspan="2"><strong>جمع کل:</strong></td>
<td class="rial" id="p">جمع اعداد در اینجا چاپ شود</td>
</tr>
</tbody>
</table>
</fieldset>
<input type="submit" value="click" onclick="ftest()">
<script>
$(document).ready(function() {
$('input[class*=rial]').priceFormat({
prefix: '',
suffix: '',
limit: false,
clearPrefix: true,
clearSufix: true,
centsLimit: 0,
centsSeparator: ',',
thousandsSeparator: ','
});
});
function ftest()
{
var q = parseInt(document.getElementById('q-arzesh').value);
var w = parseInt(document.getElementById('w-arzesh').value);
var e = parseInt(document.getElementById('e-arzesh').value);
var r = parseInt(document.getElementById('r-arzesh').value);
var t = parseInt(document.getElementById('t-arzesh').value);
var y = parseInt(document.getElementById('y-arzesh').value);
var u = parseInt(document.getElementById('u-arzesh').value);
var i = parseInt(document.getElementById('i-arzesh').value);
var o = parseInt(document.getElementById('o-arzesh').value);
var p = parseInt(document.getElementById('p-arzesh').value);
document.getElementById('p').innerHTML = q+w+e+r+t+y+u+i+o+p;
}
</script>
Javidhb
دوشنبه 25 شهریور 1392, 17:38 عصر
بقیه رو هم به این شکل تغییر بدید...
var q = parseInt($('#q-arzesh').unmask()) || 0;
تابع unmask جز همون پلاگین هست.
padidehco
دوشنبه 25 شهریور 1392, 20:46 عصر
من به پاراگرافی که توش جواب چاپ می شه کلاس ريال دادم تا عددی که چاپ می شه به صورت سه رقم سه رقم جدا بشه اما این اتفاق نمی افته
Javidhb
سه شنبه 26 شهریور 1392, 13:10 عصر
طبق http://jquerypriceformat.com فقط برای "input text fields" کاربرد داره و نمیتونید برای p استفاده کنید.
برای نمایش نتیجه:
function numberWithCommas(x){
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
منبع (http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript)
padidehco
سه شنبه 26 شهریور 1392, 16:13 عصر
طبق http://jquerypriceformat.com فقط برای "input text fields" کاربرد داره و نمیتونید برای p استفاده کنید.
برای نمایش نتیجه:
function numberWithCommas(x){
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
منبع (http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript)
از این کد چطوری می تونم در پاراگراف استفاده کنم؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.