WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:form入力値のチェック

つばさ君[MAIL][URL][WriteDate : Wed Oct 25 14:48:57 2000]

はじめまして。いきなりで申し訳ないのですが、お聞きしたいことがあります。
HPにそろそろJavaScriptとCGIを使ってなにかおもしろいコンテンツを
作ろうと思っています。
今考えている、読者参加型のコンテンツではformのinputを使って、いくつか数字を入力
してもらって、それをCGIで処理する、と言うごく普通の処理を考えていますが、
入力値として数値だけを受け取るようにJavaScriptでフィルタをかけたいのです。
isNaNでほぼ解決しますが、isNaNは"0x"で始まるものも16進の数値として許可してしまいますよね。
(ブラウザによって少し違うようですが、IEとネスケでは許可してしまいます)
"0x"で始まるものも数値以外であるとして、エラーにするような方法は何かないでしょうか。
もしご存じでしたら教えてください。

ちゃいぱ[MAIL][URL][WriteDate :Wed Oct 25 15:41:42 2000]

ちょっとイマイチですが、以下でどうですかー

<script>
function test1(f){
      if(isNaN(f.t1.value)){
         alert("数字以外");
       }
      else{
         wk = f.t1.value;
         if((wk.charAt(1) == "x") || (wk.charAt(1) == "X")){
            alert("数字以外");
         }
         else{
            alert("数字!!");
         }        
      }
}
</script>
<form name="f1">
<input type="text" name="t1">
<input type="button" value="AAA" onClick="test1(this.form)">
</form>


バギンズ[MAIL][URL][WriteDate :Wed Oct 25 16:54:07 2000]

こんなのはどうでしょう?

if ( eval(document.frm.num1.value) == 0 + document.frm.num1.value )

バギンズ[MAIL][URL][WriteDate :Wed Oct 25 17:02:49 2000]

あと、isNaNなら、こんな方法も
isNaN(1+document.frm.num1.value)



バギンズ[MAIL][URL][WriteDate :Wed Oct 25 17:09:38 2000]

すいません。
evalの方法は駄目みたいです。(^_^;)

つばさ君[MAIL][URL][WriteDate :Thu Oct 26 10:46:15 2000]

ちゃいぱさん、バギンズさん、回答まことにありがとうございました。
どちらの方法もうまくいきました。
早速使わせてもらおうと思います。
これからもこのページをいろいろ参考にさせていただきたいと思います。
ありがとうございました。
回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]