Is there a way to format decimal places in a Textbox with a number in it?

Hi,

I am putting a textbox on my form and would like it to automatically show a format of 0.0.

For instance, if the person just enters a 12, the texbox should change to 12.0 automatically.

Is this possible?

M
LVL 5
MitchellVIIAsked:
Who is Participating?
 
bubbledragonCommented:
<script language="JavaScript">
   function formatnum(obj){
      if ( !isNaN(obj.value) )
            if (parseFloat(obj.value).toFixed(2) != "NaN")
                  obj.value = parseFloat(obj.value).toFixed(2);
    }
</script>

<input type="text" name="txt1" value="" onchange="formatnum(this)"/>
0
 
Irwin SantosComputer Integration SpecialistCommented:
not with straight HTML, you could incorporate javascript  OR

have an integer / decimal form setup (archaeic, but it works)
0
 
mmarksburyCommented:
irwinpks is correct.  You need to use JavaScript to accomplish this.

You could use a few different methods, like onChange or onKeyDown to fire a Javascript function.  That function would then need to parse the text of the field, and format it...I won't write it for you, but here is a "rough" start.

<html>
<body>
<script>
function FormatNum(field)
{
  ... Logic to do the magic
}
</script>
<form name="theForm">
<input type="text" name="number" value="0.0" onkeydown="FormatNum(this)" />
</form>
</body>
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
MitchellVIIAuthor Commented:
mmark,

Any idea on what that code that forces the decimal point would look like?
0
 
r_m_shyamCommented:
Hi,

You can use the following Javascript code to achieve that,

<HTML>
<HEAD>
 <script language="JavaScript">
   function formatnum(){
     var valu1 = parseInt(document.test.txt1.value);
     document.test.txt1.value = valu1.toFixed(1);
     }
 </script>
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<form name="test">
  <input type="text" name="txt1" onchange="formatnum()"/>
</form>
</BODY>
</HTML>

Regards - RM.
0
 
r_m_shyamCommented:
initial value would be like

<input type="text" name="txt1" value="0.0" onchange="formatnum()"/>
0
 
MitchellVIIAuthor Commented:
thanks rm,

Is there a way I can add an argument to the function so that I can pass the text field name to it?  This needs to work in about 50 places.

M
0
 
MitchellVIIAuthor Commented:
Hey bubble,

would I actually type "this" in the argument or the name of the text field?

M
0
 
bubbledragonCommented:
Yes, will return the textbox object to the function.
0
 
MitchellVIIAuthor Commented:
I bow before you superior knowledge oh great one - works like a charm :)

Mitchell
0
 
MitchellVIIAuthor Commented:
Oh yeah, also meant to ask you:

How do I format a field so that it returns a dollar amount?

So that if they entered 125000 it would show $125,000.00?

Thanks :)

M
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.