• 締切済み

入力文字チェックについて

JavaScript初心者です。よろしくお願いします。入力された文字のチェックを行いたいと考えています。図面名を入力して、登録ボタンを押すと採番されるシステムで、1つだけ採番が可能なものと最大50個迄一括で採番が出来るものと2つあります。1つだけ採番であれば、下記にある通りで問題はないのですが、50個迄一括で採番する方ではエラーが表示されます。 エラー;'document.iform.zumen_mei.value'はNullまたはオブジェクトではありません。 入力文字チェック <SCRIPT language="JavaScript"> <!-- function zumenmeicheck() { var str = document.iform.zumen_mei.value; if( str.match( /[,,~1-99A-Zア-ン]+/ ) ) { alert("図面名にカンマ、~、英数字が全角で入力されている可能性があります。確認してください。"); return 1; } return 0; } function AllCheck() { var check = 0; check += zumenmeicheck(); if( check > 0 ) { return false; } return check; } //--> 図面名が最大で50個存在するもの Response.Write "<FORM NAME=""iform"" ACTION="" ./fukuzuban-2.asp"" METHOD=""POST"">" For i=1 To 50 Response.Write "<TR><TD><INPUT TYPE=""TEXT"" STYLE=""background-color:skyblue"" NAME=""zumen_mei" & i & """ MAXLENGTH=""100"" SIZE=""40"" onblur=""zumenmeicheck();"">" Next Response.Write "<INPUT TYPE=""SUBMIT"" VALUE="" 登録 "" onClick=""return AllCheck();"">" 色々と調べてはみましたが、解決出来ませんでした。何卒よろしくお願いします。

みんなの回答

回答No.4

for が大文字になってますね・・ For ではなくfor にしてください。

回答No.3

function zumenmeicheck(){ For(i=1;i<=50;i++){ var str = document.iform.elements["zumen_mei"+i].value; if( str.match( /[,,~1-99A-Zア-ン]+/ ) ) { alert("図面名にカンマ、~、英数字が全角で入力されている可能性があります。確認してください。"); return 1; } return 0; } } function の閉じる } が抜けてますよ .

kasato
質問者

補足

ご回答ありがとうございます。確かに}が抜けていました。 しかし同じエラーが表示されてしまいました。 申し訳ありませんがよろしくお願いいたします。

回答No.2

NAME=""zumen_mei" & i & """ だと NAM="zumen_mei1" ~ "zumen_mei50"ですよね。 >var str = document.iform.zumen_mei.value; iformにはzumen_mei1~50はあってもzumen_meiはありません。 なので"オブジェクトではありません"なのです。 for(i=1;i<=50;i++){ var str = document.iform.elements["zumen_mei"+i].value; } とか、やらないと・・

kasato
質問者

補足

ご回答ありがとうございます。アドバイスを頂いたように修正してみたのですが、下記のエラーが表示されてしまいました。 エラー:')'がありません。 function zumenmeicheck() { For(i=1;i<=50;i++){ var str = document.iform.elements["zumen_mei"+i].value; if( str.match( /[,,~1-99A-Zア-ン]+/ ) ) { alert("図面名にカンマ、~、英数字が全角で入力されている可能性があります。確認してください。"); return 1; } return 0; } 申し訳ありませんが、よろしくお願いいたします。

回答No.1

> Response.Write これにより出力されたHTMLが、HTMLとして文法どおりかどうか、確認してみてください。 特に > NAME=""zumen_mei" & i & """ この辺。 あと、FORループしてますが、 > var str = document.iform.zumen_mei.value; という名前で正しいですか?

kasato
質問者

補足

ご回答ありがとうございます。 >これにより出力されたHTMLが、HTMLとして文法どおりかどうか、確認してみてください。 特に > NAME=""zumen_mei" & i & """ 確認しましたが50個フィールドが並んで表示(縦方向)されています。 >あと、FORループしてますが、 名前は間違っていませんでした。やはり、ここに何か問題があるのでしょうか? 申し訳ありませんがよろしくお願いいたします。

関連するQ&A