Hi guys,

I am trying to make a javascript function that will add "000" to the end of a textbox value if the user presses k and also add "000000" if they press m. So i don't want the k or m to appear in the textbox and some 0's to appear instead. If anyone could help me out with some code id be very grateful.

Thanks everyone :)

This is where I am at now (Ive done the easy bit, cant find out about detecting if k or m is pressed)

function addZero(x) {
if//I dont know how to find out if it is a k or m
{
x.value += 000;
}
}

Recommended Answers

All 2 Replies

A simple script like this should do the job. Do keep it mind that it can be made better in a lot of ways but for your purpose it should serve well enough:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv"Script-Content-Type" content="text/javascript">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Expires" content="0"> <!-- disable caching -->
    <title>Example</title>
    <script type="text/javascript">
    function handleAutoAppend(e) {
      // A mapping which maintains a list of what needs to be appended for
      // which key pressed by the user.
      var mappings = {k : "000", m: "000000"};
      
      // Process the event triggered by the user and grab hold of the element
      // on which it was triggered along with the pressed keys' value
      e = e || window.event;
      var code = e.which || e.keyCode;
      var key = String.fromCharCode(code);
      var elem = e.srcElement || e.target;
      
      // For each 'value' of our interest, append the requisite string at the 
      // end of the existing text and return(false) so as not the render 'k'
      // or 'm'
      for(var k in mappings) {
        if(key == k) {
          var val = mappings[k];
          if(elem) {
            elem.value = elem.value + val;
            return(false);
          }
        }
      }
      
      // For all other keys, don't do anything; allow the default behavior 
      // to take over.
      return(true);
    }
    </script>
</head>
<body>
  <form id="frm" name="frm" action="#">
    <p>Enter something:</p>
    <input type="text" name="txt" id="txt" onkeypress="return handleAutoAppend(event);">
  </form>
</body>
</html>

sorry for the late reply, but this worked perfectly. Thanks :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.