Javascriptの入力チェック、日本語について

このQ&Aのポイント
  • Javascriptを使用したホームページ内の日本語入力チェックについて説明します。
  • name属性に日本語を含む要素を設定すると、入力チェックができないエラーが発生します。
  • 日本語を使用する場合は、name属性に半角英数字を使用するか、name属性の値をID属性として扱って入力チェックを行いましょう。
回答を見る
  • ベストアンサー

Javascriptの入力チェック、日本語について

Javascriptの入力チェックをホームページ内に使いたいのですが、 ●住所(都道府県) ●中学校・高校 のようにnameに「()」や「・」がある文字を設定するとエラーになってしまい入力チェックできません。 ■エラーになる例 if(document.f.住所(都道府県).value=="") { errormsg+="住所(都道府県)を入力してください。\n"; } if(document.f.中学校・高校.value=="") { errormsg+="中学校・高校を入力してください。\n"; } HTMLは以下のようにしています。 <input type="text" name="住所(都道府県)"> <input type="text" name="中学校・高校"> nameに日本語を使う場合、どのようにしたら入力チェックができるのでしょうか。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

部分だけ抜き出しているみたいなので、推測でしかありませんが… form.elements["住所(都道府県)"].value のようにすれば取得できませんか? (formはformのオブジェクト:ご提示の例ではfなのかも??) まぁ、nameを日本語にするのもほどほどにって気もしますが…

yama_no_uchi
質問者

お礼

ご回答ありがとうございます。 お教え頂いた方法で入力チェックできました。 今後はnameに日本語を使わずにしたいと思います。 本当にありがとうございました。

関連するQ&A

  • head内から外部jsにするとスクリプトが動作しません。

    下記の「●htmlのhead内に書かれているスクリプト」を外部jsにしたく、 <script type ="text/javascript"> <!-- の部分と --> </script> 以外の部分をテキストファイルにペーストして外部jsにしたのですが、 上手く動作しません。 この場合、どうやったら外部jsとして動作させることができますでしょうか? どうかご教授下さいますよう、よろしくお願い致します。 フォームタグは以下のようになっています。 <form method="POST" action="●●.cgi" name="f" onSubmit="return check()"> ●htmlのhead内に書かれているスクリプト <script type ="text/javascript"> <!-- function check(){ var errormsg=""; var mailerror=0; if(document.f.name1.value==""){ errormsg+="※お名前が入力されていません\n"; } if(document.f.kana1.value==""){ errormsg+="※フリガナが入力されていません\n"; } if(document.f.postal.value==""){ errormsg+="※郵便番号が入力されていません。\n"; } if(document.f.pref.value==""){ errormsg+="※都道府県が選択されていません。\n"; } if(document.f.adress.value==""){ errormsg+="※住所が入力されていません。\n"; } if(document.f.email.value==""){ errormsg+="※メールアドレスが入力されていません。\n"; mailerror=1; } if(document.f.email2.value==""){ errormsg+="※確認用メールアドレスが入力されていません。\n"; mailerror=1; } if(!mailerror){ if(document.f.email.value != document.f.email2.value){ errormsg+="※メールアドレスに間違いがあります。\n"; } } var mail=document.f.email.value; var c; var zen=false; for(i=0;i<mail.length;i++){ c=mail.charCodeAt(i); if(c >= 65345 && c<=65370){ errormsg+="※メールアドレスに全角文字が含まれています。\nメールアドレスは半角英数字を入力してください。\n"; zen=true; break; } } if(!zen){ var at=mail.indexOf("@"); var dot=mail.lastIndexOf("."); var space=mail.indexOf(" "); var ok=false; if(at != -1 && at != 0 && dot != -1 && dot > at +1 && dot < mail.length -1 && space == -1){ ok=true; } if(!ok){ errormsg+="※メールアドレスが正しくありません。\n"; } } if(document.f.tel.value==""){ errormsg+="※お電話番号が入力されていません。\n"; } if(document.f.haisou.checked==true){ if(document.f.name_rcpt1.value==""){ errormsg+="※お届け先のお名前が入力されていません\n"; } if(document.f.kana_rcpt1.value==""){ errormsg+="※お届け先のフリガナが入力されていません\n"; } if(document.f.postal_rcpt.value==""){ errormsg+="※お届け先の郵便番号が入力されていません。\n"; } if(document.f.pref.selectedIndex == 0){ errormsg+="※お届け先の都道府県が選択されていません。\n"; } if(document.f.adress_rcpt.value==""){ errormsg+="※お届け先の住所が入力されていません。\n"; } if(document.f.tel_rcpt.value==""){ errormsg+="※お届け先の電話番号が入力されていません。\n"; } } var pay_flag=0; var deliver_flag=0; var pay=""; var deliver=""; for(i=0;i<document.f.elements.length;i++){ if(document.f.elements[i].name == "pay"){ pay_flag++; } else if(document.f.elements[i].name == "deliver"){ deliver_flag++; } } if(pay_flag){ if(pay_flag > 1){ for(i=0;i<document.f.pay.length;i++){ if(document.f.pay[i].checked == true){ pay=document.f.pay[i].value; break; } } } else{ if(document.f.pay.checked==true){ pay=document.f.pay.value; } } } if(deliver_flag){ if(deliver_flag > 1){ for(i=0;i<document.f.deliver.length;i++){ if(document.f.deliver[i].checked == true){ deliver=document.f.deliver[i].value; break; } } } else{ if(document.f.deliver.checked==true){ deliver=document.f.pay.value; } } } if(errormsg){ alert(errormsg); return false; } } --> </script>

  • Javascriptによる入力チェックについての質問です。

    Javascriptによる入力チェックについての質問です。 入力フォームから確認画面に遷移する前に入力チェックを以下のように行っていますが、 メールアドレスを一回目と二回目の内容をチェックするにはどうしたらいいでしょうか? <script type="text/javascript"> <!-- function check_form(f){ var error_message = ""; // 必須チェック if (f.username.value == "") { error_message += "「お名前」を入力してください。\n"; } if (f.namekana.value == "") { error_message += "「お名前(フリガナ)」を入力してください。\n"; } if (f.email.value == "") { error_message += "「メールアドレス」を入力してください。\n"; } if (f.email2.value == "") { error_message += "「メールアドレス(再度確認)」を入力してください。\n"; } if (f.telno.value == "") { error_message += "「電話番号」を入力してください。\n"; } // 全角チェック if (f.username.value.match( /[^ぁ-んァ-ン \s]+/ ) ) { error_message += "「お名前」正しく入力してください。\n"; } if (f.namekana.value.match( /[^ぁ-んァ-ン \s]+/ ) ) { error_message += "「お名前(フリガナ)」正しく入力してください。\n"; } // 電話番号チェック if (f.telno.value.match(/[^0-9|-]+/)) { error_message += "「電話番号」を正しく入力してください。\n"; } // メールアドレスチェック if (!f.email.value.match(/.+\@.+\.+/)) { error_message += "「メールアドレス」を正しく入力してください。\n"; } if (!f.email2.value.match(/.+\@.+\.+/)) { error_message += "「メールアドレス(再度確認)」を正しく入力してください。\n"; } // エラー判定 if (error_message != "") { error_message = "入力内容に誤りがあります。以下の内容を確認してください。\n\n" + error_message; alert(error_message); return false; } return true; } // --> </script> //メールアドレス確認用チェック if ( !f.email.value.match(email == email2) ){ error_message += "正しいメールアドレスを入力してください。\n"; } このようにしてみたんですが、ダメでした。 あと、今はhtml内に直接javascriptを書いてますが、上記だけじゃなくチェック項目が多いので外部ファイルにする方法も教えてください。 <script type="text/javascript" src="formcheck.js"></script> <input type="button" value="参加申込方法ページへ戻る" onClick="return goReturn(0,'http://xxxx')"> &nbsp;&nbsp; <input type="submit" value="入力内容を確認する" onClick="check_form();"> としてみても上手く行きません。どこを直すべきか教えてください。

  • JavaScriptで入力チェック

    ////サンプル//// <p><input type="text" value="" name="box_1" /></p> <p><input type="text" value="" name="box_2" /></p> <p><input type="text" value="" name="box_3" /></p> <p><input type="text" value="" name="box_4" /></p> Javascriptで入力チェックをして 入力がされていたらpタグとinputタグの間に「○」を表示させたいのですが どのように実装したら良いでしょうか? ・inputタグは4つだけではなくたくさんあります ・DBを使っているのでページを更新しても○が消えないようにしたいです よろしくお願いします!

  • 現在javascriptでチェックボックスで選択した項目のvalueを

    現在javascriptでチェックボックスで選択した項目のvalueを次ページに渡すものを作成しています。 1つだけ選択すると正常に値が動くのですが、複数選択すると後に選択したほうの値だけが入ってしまいます。 複数選択した場合に選択した全てのvalueが入るようにするにはどうしたらいいでしょうか? 【1ページ目ソース】 <html> <head> <title>1page</title> </head> <body> <form name="F1" onsubmit="window.open('2page.html','_blank','');return false;"> A<input type="text" id="tanka1"> B<input type="checkbox" name="che1" id="check1" value="1">1 <input type="checkbox" name="che1" id="check1" value="2">2 <input type="checkbox" name="che1" id="check1" value="3">3 <input type="submit" value="送信" onclick=check();></form> </body> </html> 【2ページ目ソース】 <html> <head> <title>2page</title> <script> window.onload=function (){ document.F2.tanka1.value=window.opener.document.F1.tanka1.value; if (window.opener.document.F1.che1[0].checked)document.F2.check1.value=1; if (window.opener.document.F1.che1[1].checked)document.F2.check1.value=2; if (window.opener.document.F1.che1[2].checked)document.F2.check1.value=3; } </script> </head> <body> <form name="F2"> A<input type="text" id="tanka1"> B<input type="text" id="check1"> <br><br> </body> </html>

  • 複数の入力欄についての入力チェック

    JAVAScriptを勉強し始めたものです。 よろしくお願いします。 1つのページに複数のフォームと入力欄があります。 それぞれの入力欄は数字を入力することになっていて、その数字が1~90の間にあるかどうかをチェックしたいと考えています。 下記のようなページを見ると、一つ一つの入力欄について、IF文でチェックしているのですが、一括してチェックするようなことは可能ですか? http://www.tagindex.com/javascript/form/check1.html ----------------------------------------- 【以下に、やりたいことの例を示します】 <script type="text/javascript"> <!-- function matchNum() { n=eval(document.myFORM1.myTEXT1.value); // ←この行の「myFORM1」と「myTEXT1」をすべてを網羅するように書き換えられないか? if ( n < 1 || n > 90 ) { alert("入力できるのは、1~90の値です。"); } } // --> </script> <FORM METHOD="GET" name="myFORM1"> <INPUT TYPE="text" NAME="myTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="myTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="myTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM2"> <INPUT TYPE="text" NAME="yourTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="yourTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="yourTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM3"> <INPUT TYPE="text" NAME="hisTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="hisTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="hisTEXT3" onblur="matchNum()"> </FORM> <br> <FORM METHOD="GET" name="myFORM4"> <INPUT TYPE="text" NAME="herTEXT1" onblur="matchNum()"> <INPUT TYPE="text" NAME="herTEXT2" onblur="matchNum()"> <INPUT TYPE="text" NAME="herTEXT3" onblur="matchNum()"> </FORM>

  • javascriptでのアラート表示

    javascriptで大変困っております。 ラジオボタン・テキストエリアにまたがったチェックアラートをだしたいのですが、うまくいきません。 <script> function form_check(f) { if (f.Q1.value == "") { alert("・未記入です!"); return false; } ・ ・ ・ if (f.Q6.value == "") { alert("・名前が未記入です!"); return false; } else return true; } function reset_conf() { if (confirm("フォーム内容をリセットします!\n\nよろしいですか?")) return true; else return false; } </script> -------- <FORM ACTION="hogehoge.cgi" METHOD="POST" onSubmit="return form_check(this)"> 教育:<INPUT TYPE="radio" NAME="Q1" VALUE="OK"> テスト:<INPUT TYPE="radio" NAME="Q2" VALUE="OK">  アンケート:<INPUT TYPE="radio" NAME="Q3" VALUE="OK"> AAA:<input name="Q4" type="text" /> BBB:<input name="Q5" type="text" /> CCC:<input name="Q6" type="text" /> <INPUT TYPE="hidden" NAME="number" VALUE="6"> <INPUT TYPE="submit" NAME="answer" VALUE="送信する"> <INPUT TYPE="reset" NAME="reset" VALUE="リセット"> </FORM> </form> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • javascriptでフォームの値の計算

    javascript1か月目の初心者です。 7つのテキストフィールドに数値を代入させて合計と平均(最後には標準偏差)を計算しようと思ってます。 以下のように考えましたが、うまくいきません。 strが文字列として?扱われてしまっているようです。 strをevalで囲んでみてもダメです。 詳しい方教えてください。 <!--スクリプト1--> <SCRIPT LANGUAGE="JavaScript"> <!-- function f_check() { if(document.F1.num1.value!=""&&document.F1.num2.value!=""&&document.F1.num3.value!=""&&document.F1.num4.value!=""&&document.F1.num5.value!="" &&document.F1.num6.value!=""&&document.F1.num7.value!=""){ str=0 for(var i = 0;i<document.F1.length;i++){ str+=document.F1[i].value; } alert('合計は'+str+"です"); avrg = (str)/document.F1.length; alert('平均は'+avrg+'です'); //ここから標準偏差の計算(略)。 } // --> </SCRIPT> <form method="post" name="F1" onSubmit="return f_check()"> 数値を入れてください<input type="text" name="num1" size="5"><br> 数値を入れてください<input type="text" name="num2" size="5"><br> 数値を入れてください<input type="text" name="num3" size="5"><br> 数値を入れてください<input type="text" name="num4" size="5"><br> 数値を入れてください<input type="text" name="num5" size="5"><br> 数値を入れてください<input type="text" name="num6" size="5"><br> 数値を入れてください<input type="text" name="num7" size="5"><br> <INPUT TYPE=SUBMIT VALUE="平均をとる"></FORM>

  • フォームのname値を配列にしてJavaScriptでフォームのチェックをする方法

    JavaScriptでフォームの半角数字のチェックをしたいのですが、 form内容をCGI(PHP)に渡すためname値を配列にしないといけないのですが、 以下のスクリプトだとエラーが出てしまいます。 *実際はif(isNaN~)と<input~>をループで書き出しており、行数が不特定なので それぞれ別のname値を使うことができない状態です。 <script language="JavaScript"> function check() { if(isNaN(document.form1.hoge[0].value)){ alert("値は半角数字で入力してください。"); return(false); } if(isNaN(document.form1.hoge[1].value)){ alert("値は半角数字で入力してください。"); return(false); } return(true); } </script> <form method="post" action="xxx.cgi" onSubmit="return check()" name="form1"> <input type="text" name="hoge[0]"> <input type="text" name="hoge[1]"> </form> 特にCGIに渡す必要がなければ <input type="text" name="hoge"> <input type="text" name="hoge"> としてやればチェックができるのですが、どうしても次の 処理があるためname値を配列にする必要があります。 解決方法がわかる方がおられましたらご教授ください。 以上よろしくお願いいたします。

  • セレクトメニューのチェックと条件一致による入力チェック

    (1)メールフォームでセレクトメニューの「都道府県」部分で選択して送信する場合にJAVAで入力チェックエラーを表示させるにはどうしたらよいでしょうか?(東京、千葉、埼玉はOK) Javaサンプルソースを配布しているサイトを教えて下さい。 (2)JAVAによる入力チェックで「YES」にチェックされた場合に、テキストエリアを入力必須にするエラー表示方法を紹介しているサイトを知っていたら教えて下さい。 --------------------------------------------------------------- <form>名前:<input size="20" type="text" name="name"><br> 住所:<select size="1" name="adress"> <option value="東京">東京</option> <option value="千葉">千葉</option> <option value="埼玉">埼玉</option> <option value="都道府県" selected>都道府県</option> </select><input size="20" type="text" name="adress2"><br> (都道府県の場合はエラー表示)<br> <hr> 選択:<input type="radio" name="sentaku" value="yes">YES <input type="radio" name="sentaku" value="No">NO<br> <hr> YESの場合コメント記載<br> <textarea rows="2" cols="20" name="coment"> ----------------------------------------------------------------

  • チェックボックスの未入力チェック

    ざっとですけれども <form action="**" name="myform" onsubmit="return Check()" method=post> <input type="checkbox" name="Erasedata" id="Erasedata" value="1" > <input type="checkbox" name="Erasedata" id="Erasedata" value="2" > ・・・ <input type="checkbox" name="Erasedata" id="Erasedata" value="5" > <input type="submit" value="選択されたものを削除する"> このようなチェックボックスがあったとして function Check() { for (i=0;i<document.myform.length;i++)  {   if(document.myform.Erasedata[i].checked==true) {return true;}  } alert("どこかにチェックを入れて下さい "); return false; } といった感じで未入力チェックをしています。 チェックボックスが複数の場合はうまく動くのですが、チェックボックスがひとつだとうまくいきません。スクリプトで何か問題があるようでしたらご指摘お願いできませんでしょうか。よろしくお願いいたします。

専門家に質問してみよう