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