アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります!

JavaScriptで、
function checkNum()
{
 c = String.fromCharCode(event.keyCode);
 if ("0123456789".indexOf(c,0) < 0) alert("数値以外入力できません");
}
と記述し、実行してみたのですが確かに数値以外は入力できないのですが
BackSpaceやEnterキー、Tabキーを押した時にもアラートが発生します…。
本を見て、
function checkNum()
{
 c = String.fromCharCode(event.keyCode);
 if ("0123456789".indexOf(c,0) < 0) return false;
return true;
}
と記述すると、フォーム自体に半角数字しか入力できなくなると書いてあったのですが
実行しても普通に全角入力できました…。(泣)

何か方法ありますか?ご存知の方、宜しくご教授願います★

ちなみに、勿論<input>部分にonKeyDown="***()"の記述はしてますし
JavaScriptが有効な状態での実行です。

A 回答 (2件)

>BackSpaceやEnterキー、Tabキーを押した時にもアラートが発生します…。


----------------------------------------------------------------
window.onload=function(){
document.form1.text1.onkeypress=checkNum;
};
function checkNum(e){
if(!e){
e = event;
e.which = e.keyCode;
}

if((48 > e.which || e.which > 57) && e.which > 31){
alert("数値以外入力できません");
return false;
}
return true;
}

<input type="text" name="text1">
----------------------------------------------------------------
の様にしてやれば、バックスペースなどは使えるようになります。
要点は、keyCode の範囲を指定してやることです。

全角入力については、どうも、onkeypress イベントが起こらないようなので、このイベントの中では処理できません。
入力されてしまった後、チェックするか、
#1の様にIMEを切るかしかないように思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!!keyCodeの指定をする事でTabキーなども
使える様になりました!とても参考になりました☆有難うございます。

お礼日時:2006/06/23 11:09

HTMLに以下のように書いてみてはいかがでしょうか。



<input type="text" name="aaaa" style="ime-mode:disabled;">
    • good
    • 0
この回答へのお礼

ありがとございます。IMEを切る方法はCSSでの記述で書いていたのですが、半角英数字のみの受け付けになりますよね?半角数字だけの受け付けにしてみたかったのですが…。これ以上無理なんでしょうか?

お礼日時:2006/06/23 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!