javascript - Add Comma After Every Three Digits in Input Value After OnClick Event -
i have table/form calculates monthly payments mortgage. when calculate button pressed, javascript function make calculation based on values of inputs , set value of calculation inside of monthly payment input. problem when value set input, value gets displayed without commas. instance, 1543 instead of 1,543. if knows anyway add commas monthly payment input great. here picture of mortgage calculator monthly payment input outlined:

here code mortgage calculator:
<form action="post" name="myform"> <table border="1" bgcolor="#006666"> <tr> <td align="center" colspan="2"> <script language="javascript"><!-- function carloancalculator() { form = document.myform loanamount= form.loanamount.value loanamount = loanamount.replace(/,/g, ""); parseint(loanamount); downpayment= "0" annualinterestrate = form.interestrate.value/100 years= form.numberofyears.value monthrate=annualinterestrate/12 numpayments=years*12 prin=loanamount-downpayment monthpayment=math.floor((prin*monthrate)/(1-math.pow((1+monthrate),(-1*numpayments)))*100)/100 commafy ("monthpayment") form.numberofpayments.value=numpayments form.monthlypayment.value=monthpayment } // --></script> <script type="text/javascript"> function format(input) { var nstr = input.value + ''; nstr = nstr.replace( /\,/g, ""); x = nstr.split( '.' ); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while ( rgx.test(x1) ) { x1 = x1.replace( rgx, '$1' + ',' + '$2' ); } input.value = x1 + x2; } </script> <font color="#ffffff" size="2" face="arial narrow"><b>mortgage calculator</b> <br> enter details & click calculate button</font></td> </tr> <tr> <td> <table border="0" cellpadding="2"> <tr> <td align="right"><font color="#ffffff" size="2" face="arial narrow">finance amount $ </font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="text" size="10" name="loanamount" value="30,000" onblur="carloancalculator()" onkeyup="format(this)" onchange="carloancalculator()"> <br> </font></td> </tr> <tr> <td align="right"><font color="#ffffff" size="2" face="arial narrow">annual interest rate </font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="text" size="3" name="interestrate" value="7.0" onblur="carloancalculator()" onchange="carloancalculator()"> % <br> </font></td> </tr> <tr> <td align="right"><font color="#ffffff" size="2" face="arial narrow">term of mortgage</font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="text" size="3" name="numberofyears" value="4" onblur="carloancalculator()" onchange="carloancalculator()"> years<br> </font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="button" name="morgcal" value="calculate" language="javascript" onclick="carloancalculator()"> </font></td> </tr> <tr> <td colspan="3"><font color="#ffffff"></font></td> </tr> </table> </td> </tr> <tr> <td> <table border="0" cellpadding="2"> <tr> <td align="right"><font color="#ffffff" size="2" face="arial narrow"> number of payments </font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="text" size="7" name="numberofpayments"> <br> </font></td> </tr> <tr> <td align="right"><font color="#ffffff" size="2" face="arial narrow">monthly payment $ </font></td> <td><font color="#ffffff" size="2" face="arial narrow"> <input type="text" size="7" name="monthlypayment" id="test"> <br> </font></td> </tr> <tr> <td align="center" colspan="2"> </td> </tr> </table> </td> </tr> </table> <div align="center"></div> </form> thank help. appreciated.
the correct javascript code add comma after every 3 digits in monthly payments input value onclick event be:
<script language="javascript"><!-- function carloancalculator() { form = document.myform loanamount= form.loanamount.value loanamount = loanamount.replace(/,/g, ""); parseint(loanamount); downpayment= "0" annualinterestrate = form.interestrate.value/100 years= form.numberofyears.value monthrate=annualinterestrate/12 numpayments=years*12 prin=loanamount-downpayment function replacenumberwithcommas(yournumber) { monthpayment=math.floor((prin*monthrate)/(1-math.pow((1+monthrate),(-1*numpayments)))*100)/100 yournumber = monthpayment //seperates components of number var components = yournumber.tostring().split("."); //comma-fies first part components [0] = components [0].replace(/\b(?=(\d{3})+(?!\d))/g, ","); //combines 2 sections return components.join("."); } //seperates components of number form.numberofpayments.value=numpayments form.monthlypayment.value=replacenumberwithcommas() //seperates components of number } // --></script> note: code bit out of order in terms of neatness , perhaps comments, javascript syntax correct.
Comments
Post a Comment