Sometimes we need the user to enter only numbers in a text field, so I have some up with a small piece of JavaScript to do exactly that. It works for both IE and Firefox. Code: function onlyNumbers(evt) { var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } Example Usage: HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Allow Only Numbers </HEAD> <BODY> <script language="JavaScript"> function onlyNumbers(evt) { var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } </script> <input type="text" onkeypress="return onlyNumbers();"> </BODY> </HTML>
thanks for this but u must mention the comments as much as possible so that other readers could eaisily get this. thx again
Is there any way to add the ability to enter in the "-" character as well. I think it is key code 109 or 189. I can't seem to get it to accept only numbers and this one extra character.
I am not a JS expert but you need to edit the condition Code: if (charCode > 31 && (charCode < 48 || charCode > 57)) so that when its 109 or 189 then it does not return false.
Shabbir is right you just have to modify the condition to suit your needs, e.g. Code: if (charCode > 31 && ((charCode < 48 || charCode > 57) || charCode !=109)) return false; That should do it!
Not so smart. This doesn't allow for the shift key being pressed, so allows any of !"£$%^&*() as well as any numeric. Obviously (??) the onKeyDown etc doesnt detect Shift1 etc. So as a validation before assigning to a numeric field then this just doesnt work.
:pleased: The problem with the shift key can be fixed as follows : { var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; if (e.shiftkey) return false; return true; } The down side of this is that it efectively disables the numeric key pay because the Num Lock sets the shift key. You probably need to extend the numeric character set tested for to include a decimal point . or , depending upon convention, the thousand marker , and + and - to detect signs and on occasions the currency symbols such as £$ etc
Helloo, I'm not a javascript expert also, but this function has a parameter and we when we called it down , it doesn't talk any parameters . How Come?:thinking:
In this example we can allow Only Numbers in a Textbox. HTML: <HTML> <HEAD> <SCRIPT language=Javascript> <!-- function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } //--> </SCRIPT> </HEAD> <BODY> <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar"> </BODY> </HTML>
In order to detect the shift key, you can add a hidden input box and set its value to 1 whenever the shift key is pressed from within your js function. Then simply check the value of the hidden input box and disallow/allow as necessary (You will need two events to do this - keydown and keypress).
This is an example for allowing only number in textbox I think this will help you Code: import java.awt.Container; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.PlainDocument; public class ValidationTestFrame extends JFrame implements DocumentListener { JLabel label = new JLabel("I only accept numbers"); private IntTextField intFiled; public ValidationTestFrame() { setTitle("ValidationTest"); setSize(300, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); JPanel p = new JPanel(); intFiled = new IntTextField(12, 3); p.add(intFiled); intFiled.getDocument().addDocumentListener(this); contentPane.add(p, "South"); contentPane.add(label, "Center"); } public void insertUpdate(DocumentEvent e) { setLabel(); } public void removeUpdate(DocumentEvent e) { setLabel(); } public void changedUpdate(DocumentEvent e) { } public void setLabel() { if (intFiled.isValid() ) { int value = intFiled.getValue(); label.setText(Integer.toString(value)); } } public static void main(String[] args) { JFrame frame = new ValidationTestFrame(); frame.show(); } } class IntTextField extends JTextField { public IntTextField(int defval, int size) { super("" + defval, size); } protected Document createDefaultModel() { return new IntTextDocument(); } public boolean isValid() { try { Integer.parseInt(getText()); return true; } catch (NumberFormatException e) { return false; } } public int getValue() { try { return Integer.parseInt(getText()); } catch (NumberFormatException e) { return 0; } } class IntTextDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if (str == null) return; String oldString = getText(0, getLength()); String newString = oldString.substring(0, offs) + str + oldString.substring(offs); try { Integer.parseInt(newString + "0"); super.insertString(offs, str, a); } catch (NumberFormatException e) { } } } }
hi, i used the code above and find the following error, event is not defined how ever i used the following code and it worked fine, Code: function onlyNumbers(evt) { /* if (!evt) { evt = window.event; } */ var e = window.event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } any idea about this issue?
Web development is beautiful field and in search engine optimization it is more important. Because there is main work on website.
Is it possible to combine the characters as well as the numbers? What problem could fix your codes? Calculator? Digit Problem Solving? Anyway, this would add information to my HTML note. Thanks for the information.
The HTML tag goes like this: Code: <form action="#.html" onsubmit=" return validate();" name="myform" method="post" style="border:thin;" > <table align="center" bgcolor="#CCCCCC"; cellpadding="2px" style="text-align:left"> <tr> <th>Contact No.</th><td><input type="text" id="cont" name="cont" /><font size="+0" color="#FF0000">*</font></td> </tr> </table> </form> The javascript goes : Code: function validate() { if( Uize.isNaN(document.getElementById("cont").value)) { alert("Invalid Number."); return false; } } >>>Happy coding <<<