PDA

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



padidehco
شنبه 26 مرداد 1392, 10:21 صبح
سلام دوستان
من چطوری می تونم یک input را کاری کنم که وقتی در آن عدد وارد می شود آن را به صورت سه رقم سه رقم جدا کند ولی آن را در پردازش اعمال نکند
مثل سایت های بانکی که وقتی یک عدد وارد input می کنید آن را به صورت سه رقم سه رقم در input جدا می کند اما زمان ارسال عدد درون input به صفحه بعدی دیگر اون را به صورت سه رقم سه رقم جدا نمی کند
از چه کدی می تونم استفاده کنم؟

WOLF_MEHRDAD
شنبه 26 مرداد 1392, 11:18 صبح
درود بر شما ،


سوالتون مربوط به بخش JavaScript میشه نه PHP
قبل از ایجاد تاپیک هم بهتره جستجو کنید

این چندتا لینک میتونه کمکتون کنه :


http://amib.ir/weblog/?p=684


موفق باشید.

MostafaEs3
شنبه 26 مرداد 1392, 12:52 عصر
1- از لود شدن Jquery در صفحه مطمئن بشید.
2- پلاگینی که ضمیمه شده رو دانلود کرده و بصورت زیر ازش استفاده کنید.



<script type="text/javascript" src="jquery.price_format.1.8.min.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
$('input[id*=example]').priceFormat({
prefix: '',
suffix: '',
limit: false,
clearPrefix: true,
clearSufix: true,
centsLimit: 0,
centsSeparator: ',',
thousandsSeparator: ','
});
});
//--></script>

در این مثال بجای id*=example ، نیاز هست Id یا Class فیلد مورد نظر خودتون رو وارد کنید.

منبع: http://jquerypriceformat.com
-------------------------
موفق باشید

padidehco
شنبه 23 شهریور 1392, 22:01 عصر
سلام داداش
اگر بخوام چند تا ایدی مختلف بهش معرفی کنم باید چی کار کنم؟
اگر یک input داشته باشم که زمان بارگزاری صفحه غیر فعال باشه و بعد کاربر اون را فعال کنه و درون ان عدد وارد کنه ، کد بالا کار نمی کنه
باید چی کار کنم تا درست بشه؟

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

MostafaEs3
شنبه 23 شهریور 1392, 22:40 عصر
به کمک PHP این امکان وجود داره ::


echo number_format('200000000', 3, ',', ',');

MostafaEs3
شنبه 23 شهریور 1392, 22:46 عصر
اگر هم بخواهید میشه از همون پلاگین بالا (با یکسری تغییرات) استفاده کرد. فایل ضمیمه رو دانلود کرده و برای تگهای html بصورت زیر ازش استفاده کنید ::


<script type="text/javascript" src="jquery.price_format_html.1.8.min.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
$('span[id=example]').priceFormat_html({
prefix: '',
suffix: '',
limit: false,
clearPrefix: true,
clearSufix: true,
centsLimit: 0,
centsSeparator: ',',
thousandsSeparator: ','
});
});
//--></script>

MostafaEs3
شنبه 23 شهریور 1392, 22:49 عصر
قبل از استفاده، از لود شدن Jquery در پروژه مطمئن بشید

padidehco
یک شنبه 24 شهریور 1392, 11:15 صبح
چطوری می تونم مقادیر input را که با کد بالا سه رقم سه رقم جدا کردم را جمع بزنم ، که این ممیز ها در عملیات جمع محاسبه نشود اما زمان چاپ جواب دوباره سه رقم سه رقم جدا شود؟
من این کد را درون یک فرم گذاشتم و می خوام که جواب را با اطلاعات input که ذکر شد ارسال کند

MostafaEs3
یک شنبه 24 شهریور 1392, 11:40 صبح
بوسیله PHP ::


$_POST['input'] = str_replace(",", "", $_POST['input'])


بوسیله JavaScript ::


value = document.getElementById('input').value;
value = value.replace(',', '');

صباح فتحی
یک شنبه 24 شهریور 1392, 12:00 عصر
من ازاین استفاده میکنم:

function addCommas(str) {
//Pure Number

var amount = new String(str);

var spl = amount.split(",");
var ot = "";
for (var k = 0; k < spl.length; k++) {
ot = ot.concat(spl[k].toString());//it's pure number 40,000=>40000
}

//__________________________________________________ _______________________________
ot = ot.split("").reverse();
var output = "";
for (var i = 0; i <= ot.length - 1; i++) {
output = ot[i] + output;
if ((i + 1) % 3 == 0 && (ot.length - 1) !== i) output = ',' + output;
}
return output;
}

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 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>

MostafaEs3
دوشنبه 25 شهریور 1392, 22:43 عصر
فایل ضمیمه شده رو بررسی کنید.

MMSHFE
سه شنبه 26 شهریور 1392, 09:03 صبح
موضوعات خارج از PHP رو در این تالار مطرح نکنید. درصورت تکرار، مطابق قوانین برخورد خواهد شد. تاپیک قفل شد.