• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:checkFormの記述について)

checkFormの記述について

このQ&Aのポイント
  • JavaScript初心者のため、checkFormの記述について質問します。
  • フォーム入力時に特定の記号が入力された場合にalertを表示したいですが、うまく設定できません。
  • アドバイスや解決策があれば教えてください。

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

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

よくわかりませんが… とりあえず、以下のあたりをチェックしてみてください。 1)if()の条件式の括弧が整合していないので、ここでエラーが出て止まります。 2)条件式として正規表現を利用するおつもりのようですが、クォーテーションでくくると文字列として扱われます。 3)正規表現でチェックする場合は、test()やmatch()をご利用ください。  http://www.site-cooler.com/kwl/javascript/15.htm 4)HTMLが不明ですが、document.entry.aaa.valueの部分はdocument.forms["entry"].elements["aaa"].valueなどとしておくほうが確実かと 5)正規表現の記述方法については3)に挙げたサイト他をご参照ください 関数を以下のようにして条件式をチェックしてみれば、どのような判定結果になっているかテストしながら確認してみることができるかと思います。 function checkForm(){  alert( 条件式 ); //true or false  return false; }

atomatom2003
質問者

お礼

ご回答ありがとうございます。 そうですよね。よくわからないですよね。 すみませんでした。 もっと勉強してチャレンジしたいと思います。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

「==」では「同じなら」になってしまいます。 「/[][&;`'\\\"|*?~<>^(){}$]/」って入力されて初めてifの中を通ります。 「文字列があるか?」は「match」を使いましょう。

atomatom2003
質問者

お礼

「match」ですね。 もっと勉強しておきます。 ご回答本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

そもそもカッコとカッコとじがセットになってなくない? それと正規表現したいならmatchとかつかってください またjavascriptの正規表現のパターンでスラッシュをデリミタにするときは クォーテーションで囲まない仕様です とにかく全体的に変なので何かを参考にしているのでしたら元ソースを よく読み返してください

atomatom2003
質問者

お礼

はい。元ソースを読み返してみます。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScriptの記述を添削してください。

    アンケートフォームを作成して送信ボタンを押してから 送信確認メッセージを出るようにいたしました。 今までは送信確認メッセージは出さずに 必須項目の未入力部分のみの確認で行っていましたが 送信ボタンを押した後に送信確認メッセージを出してから OKなら送信、キャンセルなら元に戻るというようにしてみました。 自分で動作確認したところでは問題ないようですが、 JavaScriptは超初心者の為まったく自信がありません。 お手すきの方がいましたら 間違っている箇所などをご指摘くださいますでしょうか。 //入力確認 // function kakunin() { if (document.F2.名前.value == "") { alert("名前が入力されていません。"); document.F2.名前.focus(); return(false); } if (document.F2.ふりがな.value == "") { alert("ふりがなが入力されていません。"); document.F2.ふりがな.focus(); return(false); }  if (document.F2.メール.value == "") { alert("メールアドレスが入力されていません。"); document.F2.メール.focus(); return(false); } // //↓以下を付け足しました。 //送信確認 // myRet = confirm("送信します。よろしいですか?"); if ( myRet == false ) return(false); return(true); } <FORM name="F2" method="POST" action="***/mail.cgi" onsubmit="return kakunin()"><INPUT type="hidden" name="_to_" value="***@***.ne.jp"><INPUT type="hidden" name="_subject_" value="***"><INPUT type="hidden" name="_location_" value="***.htm"><BR> <INPUT type="submit" value="送信ボタン"> 上部、入力確認は今まで問題無く動作していました。 よろしくお願いします。

  • 一括で入力のチェックをしたいのです!

    どなたか教えてください・・・ フツー入力チェックを行う場合 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.Name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.Email.value==""){ alert("Eメールアドレスを入力してください。"); return false; } if(document.myform.Email.value.indexOf("@")<=0){ alert("Eメールアドレスが正しくありません。"); return false; } if(document.myform.Comment.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --> </SCRIPT> こんなカンジで各フォーム毎にチェックを行い メッセージを出したりすると思うのですが、 フォーム数が多いため、入力のチェックを 一括で行いたいのですが・・・ JavaScriptを始めて間もないため とんちんかんな質問をしている様でしたら すみません。 どなたか入力チェックを一括で出来る方法を 教えて頂けないでしょうか・・・ お願いします。

  • アラーと表示がうまくいきません

    <SCRIPT LANGUAGE="JavaScript"> <!-- function aaa(){ if(document.a.ADD01.selectedIndex==0){ alert("カテゴリを選んで下さい。");document.a.ADD01.focus();return false; }else if(document.a.EMAIL.value=="" &&document.a.TEL.value==""){ alert("メールアドレスか電話番を入力して下さい。"); document.a.EMAIL.focus(); return false; }else{ return true;} } // --> </SCRIPT> 上記の「メールアドレスか電話番号を入力して下さい。」のアラートを「メールアドレスを入力して下さい。」に変えたいのですが(document.a.EMAIL.value=="" && document.a.TEL.value=="")のどの部分までを消していいのか分かりません。

  • フォームの入力チェックをすると既に入力した項目が消える

    実は過去のQ&Aの中でご紹介されていた ホームページを拝見させて頂いたのですが、 残念ながら私の応用力が足りず、 上手く作ることが出来ません。 下記のように書いてみたのですが、 これでは未入力のメッセージにOKを押すと その前に入力したものが全て消えてしまいます。 何方か、正しい書き方をご教示下さいますよう 宜しくお願い申し上げます。 <script language="JavaScript"> <!-- function checkForm(){ if(document.form1.chk1.checked == false && document.form1.chk2.checked == false) { alert('チェックなし'); return false; } { flag = 0; for ( i = 0 ; i < document.form1.radiobtn.length ; i++){ if (document.form1.radiobtn[i].checked){ flag = 1; } } if (!flag){ alert('ラジオなし'); return false; } if(document.form1.sel.selectedIndex == 0){ alert('メニューなし'); document.form1.sel.focus(); return false; } if(document.form1.bun.value == ""){ alert('文字なし'); document.form1.bun.focus(); return false; } } return true; } //--> </script>

  • radioボタンでも、うまくアラート処理したいのですが・・・

    <SCRIPT LANGUAGE="JavaScript"> <!-- // ヌル及び空欄のチェックを行う function isFilled(elm) { if (elm.value == "" || elm.value == null) return false; else return true; } function isReady(form) { // 名前の空欄のチェックを行う if (isFilled(form.name) == false) { alert("お名前を入力して下さい。"); form.name.focus(); return false; } return true; } //--> </SCRIPT> フォームによるアンケートページを作成しているのですが、 textボックスで回答が書かれていなく、空欄の部分があったら アラートを出し、そのtextボックス部分に戻す、というような 上記プログラムの流れにしています。 textボックスではうまくいくのですが、radioボタンのとき、 うまくいきません(アラートは出るが、フォームに戻らない)。 回避策を教えてください。

  • JavaScriptでBMI計算

    初めて質問しますので無礼があるかと思いますがお許しください。 JavaScriptを独学で勉強してます。そこでBMI計算ができるようなものを下のように様々なものを参考にしてつくってみたのですが、BMIがどんな値でも”低体重”しかでません。BMIの値によってそれぞれの警告画面が出るようにしたいんです;;どうすればいいのでしょうか?よろしくお願いします。 <HTML> <HEAD> <TITLE>関数のテスト</TITLE> <SCRIPT language="JavaScript"> <!-- function test() { if (aaa.h.value == "") { alert("身長を入力してください。"); return false; } if (aaa.w.value == "") { alert("体重を入力してください。"); return false; } height = document.aaa.h.value; weight = document.aaa.w.value; bmi = weight/height/100/height/100; if (aaa.bmi.value < 18.5) {          alert("低体重。"); }else{ if (aaa.bmi.value >25) { alert("肥満"); }else{ alert("標準") } } } //--> </SCRIPT> </HEAD> <BODY> <form name="aaa"> 身長:<input name = "h"><BR> 体重:<input name = "w"><BR> <input type="button" value ="測定" onClick = "test()" > <br> BMI:<input name = "bmi"> </form> </BODY> </HTML>

  • validateForm firefoxでalertが表示されません

    java scriptについて質問です。 ホームページ内のプルダウンメニューで、項目が選択されていない状態で「submit」ボタンが押された場合、「~を選択してください」というメッセージを表示させたいと思います。 そこで以下のようなfunction validateFormを書いたのですが、alertがIEでは表示されるのにfirefoxでは表示されません。 function validateForm() { if (document.form1.Prop1.options.value == 'Error') { alert('Please select aaa.') document.form1.Prop1.focus() return false } if (document.form1.Prop2.options.value == 'Error') { alert('Please select bbb.') document.form1.Prop2.focus() return false } if (document.form1.Prop3.options.value == 'Error') { alert('Please select ccc.') document.form1.Prop3.focus() return false } if (document.form1.Prop4.options.value == 'Error') { alert('Please select ddd.') document.form1.Prop4.focus() return false } if (document.form1.Prop5.options.value == 'Error') { alert('Please select eee.') document.form1.Prop5.focus() return false } } firefoxでもalertを表示させるには、どのようにすればいいでしょうか? 教えてくださいませ。よろしくお願いします。

  • メールアドレスの入力チェックをして、正しくなければ戻る方法

    今、フォームを作っているところなのですが、 各必須事項は入力されていないと戻るように設定していますが、同じ形でメールアドレスもチェックしたいのですが、その際にxxx@***.xxxという正規の形でないと引っ掛かるようにしたいのですが、どうすればよいでしょうか?お分かりの方、是非教えてください。 よろしくお願いします。 -------------------------------------------- 現在のスクリプトは以下のような感じです。 これでは、大文字などでメールアドレスを入れられてもチェックを通してしまいますので。。 function check(){ if(document.FF.お名前_漢字.value == ""){ alert("お名前_漢字を入力してください"); document.FF.お名前_漢字.focus(); return(false); } if(document.FF.住所.value == ""){ alert("住所を入力してください"); document.FF.住所.focus(); return(false); } if(document.FF.email.value == ""){ alert("メールアドレスを入力してください"); document.FF.email.focus(); return(false); } return(true); } -------------------------------------------- そして送信ボタンを押すと、このスクリプトが働くように、 onSubmit="return check()" を設定しています。

  • プルダウンメニューを選択していない時に送信ボタンを押した場合、(必須の)アラートを表示したい。

    過去にほぼ同じ質問がありましたが、それでも解決出来なかったので質問させていただきました。 フォームで未入力の項目に対してアラートとフォーカスされるようにしました。 そこにプルダウンメニューを加えたものを作ろうとしたのですが、アラートの内容が全部同じ(職業が選択されていません)になってしまった事と、アラートは表示されたのですが、プルダウンメニューを選択してもアラートが出続けてしまいます。 プルダウンメニューが未選択の場合にのみアラートを表示するにはどうしたらよいでしょうか。 <SCRIPT language="JavaScript"> <!-- function chkHissu(frm){ var hissu=Array('name','kana','age','mail','sex','syumi'); var hissu_nm = Array('名前','フリガナ','年齢','メールアドレス','性別','趣味'); var len=hissu.length; for(i=0; i<len; i++){ var obj=frm.elements[hissu[i]]; if(obj.type=='text' || obj.type=='textarea'){ if(obj.value==''){ alert(hissu_nm[i]+'は必須入力項目です'); frm.elements[hissu[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(hissu_nm[i]+'は必須入力項目です'); return false; } } } return true; } function check(value){ //数字かどうかのチェック if(isNaN(value)){ alert("数値を半角で入力してください。"); //警告コメント document.form1.age.focus(); return false; } //入力があるかどうかのチェック if(!value){ alert("年齢を入力してください。"); //警告コメント document.form1.age.focus(); return false; } } function checkAd(address){ if(!address){ alert("メールアドレスを入力してください。"); } else if(address.indexOf("@",0)<=0){ alert("メールアドレスが正しくありません。"); document.form1.mail.select(); return false; } } //-- </SCRIPT> ご存知の方がいらっしゃいましたらご教授願います。

  • フォームメールでURL送信時、存在しないURLの入力を拒否したい

    xmlhttprequest.comにあるxmlhttprequest.jsを使って、 会社の問い合わせページとして、URLやコメント等を入力して 送信できるメールフォームのページを作っています。 存在しないURLを入力した場合はエラーを返すようにしたのですが、 今度は、メールフォームのコマンドが実行されなくなって しまいました。 どこがおかしいのかご教示いただきたく。 <html><head><title>お問い合せ</title> <script type="text/javascript" src="xmlhttprequest.js"></script> <script type="text/javascript"><!-- xhobj = new XMLHttpRequest(); LoadFlg = 0; function init(){ } function go(){ document.form2.Url.value = "http://www.google.co.jp/" + document.form1.Url.value; document.form2.comment.value = document.form1.comment.value; if ( all_check(document.form1) ){ document.form2.submit(); } } function all_check(form){ if( !(nullCheck(form.Url,"URLを")) ){ return false; } if( !(nullCheck(form.comment,"問合せ内容を")) ){ return false; } if( !(stateCheck(form.Url)) ){ return false; } return true; } function alert_focus(obj,str){ alert(str + "入力してください。"); obj.focus(); } function nullCheck(obj,str){ if (obj.value == "" || obj.value == null){ alert_focus(obj,str); return false; }else{ return true; } } function stateCheck(obj){ if(xhobj == null){ alert("お使いのブラウザは対応していません。"); return false; } if(LoadFlg == 0){ LoadFlg = 1; xhobj.onreadystatechange = handleXHRequest; xhobj.open("GET", "http://www.google.co.jp/"+ obj.value, true); xhobj.send(null); } else { LoadFlg = 0; xhobj.abort(); return true; } } function handleXHRequest(){ if(xhobj.readyState == 4){ if(LoadFlg == 1){ if(xhobj.status != 200){ form1.state.value=xhobj.status; alert("存在しているURLを入力してください。"); return false; } xhobj.abort(); LoadFlg = 0; } return true; } } // --></script> </head> <body onLoad="init();"> <form name="form1" id="form1" method="get" action="javascript: go();"> ページURL:http://www.google.co.jp/<input name="Url" id="Url" type="text" value=""><br> 用件:<textarea name="comment"></textarea><br> <input type="reset" value="取消"><input type="submit" value="送信"><br> ステータス確認用:<input name="state" type="text" value=""> </form> <form name="form2" id="form2" method="post" action="http://URL/mail/"> <input type="hidden" name="subject" value="問合せメール"> <input type="hidden" name="Url" value=""> <input type="hidden" name="comment" value=""> </form> </body></html>