フォームで数字のみ入力可能に

フォームで入力できる文字を数字のみに制限する。

<script language="JavaScript">
<!--
function numberOnly() {
st = String.fromCharCode(event.keyCode);
if ("0123456789\b\r\t".indexOf(st,0) < 0) return false;
return true;
}
//-->
</script>

<form action="">
<div>
郵便番号<br>
<input type="text" size="3"name="zip1" value="" onkeydown="return numberOnly()">

<input type="text" size="6"name="zip2" value="" onkeydown="return numberOnly()">
</div>
</form>



【2011/08/17追記】
テンキーでは入力できないとご指摘されました...できませんね。
今ならjQueryを使って以下のように書きます。

<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="Shift_JIS" />
 <meta http-equiv="Content-Script-Type" content="text/javascript">
 <title>jQuery数字のみ入力</title>
 <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
</head>
<body>
<form action="">
<div>
郵便番号<br>
<input type="text" size="3" name="zip1" class="zip" value="" /><input type="text" size="6" name="zip2" class="zip" value="" />
</div>
</form>
 <script><!--
  jQuery('input.zip').keypress(function(event) {
   st = String.fromCharCode(event.which);
   if ("0123456789\b\r\t".indexOf(st,0) < 0) return false;
   return true;
  });
 //--></script>
</body>
</html>

でも、日本語は入力できちゃいますね。。。