Hi All,
I have created one javascript by which you can validate a decimal value of any textbox for which you want.
By this javascript we can bind user to enter only digits in textbox. and when he will enter any decimal value javascript will do round off it by 2 digits.
So here is this javascript:
<script language="JavaScript" type="text/javascript">
function round_decimals() {
var val = document.getElementById('<%=txtamount.ClientID %>').value;
var result1 = parseFloat(val) * Math.pow(10, 2);
var result2 = Math.round(result1);
var result3 = result2 / Math.pow(10, 2);
document.getElementById('<%=txtamount.ClientID %>').value = pad_with_zeros(result3, 2);
}
function pad_with_zeros(rounded_value, decimal_places) {
// Convert the number to a string
var value_string = rounded_value.toString()
// Locate the decimal point
var decimal_location = value_string.indexOf(".")
// Is there a decimal point?
if (decimal_location == -1) {
// If no, then all decimal places will be padded with 0s
decimal_part_length = 0
// If decimal_places is greater than zero, tack on a decimal point
value_string += decimal_places > 0 ? "." : ""
}
else {
// If yes, then only the extra decimal places will be padded with 0s
decimal_part_length = value_string.length - decimal_location - 1
}
// Calculate the number of decimal places that need to be padded with 0s
var pad_total = decimal_places - decimal_part_length
if (pad_total > 0) {
// Pad the string with 0s
for (var counter = 1; counter <= pad_total; counter++)
value_string += "0"
}
return value_string
}
//-->
</script>
Now here is the aspx page that how we have to place it on textbox.
<asp:TextBox ID="txtamount" onblur="javascript:round_decimals()" runat="server"></asp:TextBox>
I had tested this javascript in IE7/IE8/FF/safari/Google Chrome.