• ベストアンサー

選択されていないときにメッセージ

noname#1785の回答

  • ベストアンサー
noname#1785
noname#1785
回答No.3

これじゃ、動かないですね~。(^^;; JavaScriptのコードの間違いは下記5点です。 1.指定されているSELECTボックスの初期値が「↓【選択して下さい】」になっていません。 2.functionを囲む中カッコがありません。 3.SELECTボックスの選択値は、VALUEではとれません。selectedIndexを使用します。 4.if文の条件は"="ではなく"=="です。 5.alertはJavaScriptの予約語ですので、そのままではfunction名に使用できません。 以下、修正ソースです。 -------------------------------------------- <html> <head> <script language="javascript"> function checkalert() { if (document.main.kubun[document.main.kubun.selectedIndex].value == ""){ window.alert("選択してください。"); } } </script> </head> <body> <form name="main"> <SELECT NAME="kubun"> <OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION> <OPTION VALUE="東京">東京</OPTION> <OPTION VALUE="大阪">大阪</OPTION> </SELECT> <BR> <TEXTAREA NAME="TextArea" ROWS="7" COLS="73" onClick="checkalert()"> </TEXTAREA> </form> </body> </html> ---------------------------------------------- JavaScriptの基本をキチンと押さえる事をお薦めします。

s-holmes
質問者

お礼

皆様回答ありがとうございました。言われてみれば、以前にも指摘された内容もあったりして、基本がわかっていないと痛感いたします。ありがとうございました。

関連するQ&A

  • Javascriptでセレクトメニューの選択チェックの方法

    Javascriptでセレクトメニューのフォームをチェックしたいのですが、 リストメニューの「選択して下さい」を選んだままだと、「番号を選択して下さい。」とエラーを出したいのですが、下記の様に書いてみたのですが、うまく動きません…どのように書けばいいか教えて下さい。宜しくお願いします。 <script language=\"JavaScript\"> <!-- function Check() { var str = document.form.a.value; if(document.form.a.value == "0") { alert("番号を選択して下さい"); } //--> </script> <form id="form" name="form" method="post" action="##"> <select name="a" onblur="Check();"> <option value="0">選択して下さい</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" name="Submit" value="登録" onClick="Check();"> </form>

  • ネスケで動かないjavascriptの調べ方

    下記はセレクトボックスを選択させるためのものですが、IEでは動きますが、NNでは動きません。この時に、何かで調べようとするときに、「何」を調べればいいのかさっぱりです。できれば、 1番目に○を調べ、 2番目に○を調べ、 というような手順についてアドバイスいただけないでしょうか。 <SCRIPT language=JavaScript> function submitCheck(){ for( i=0 ; i<document.main.length ; i++ ){ if(document.main.elements[i].type == "select-one" && document.main.elements[i].value == "err"){ alert("未選択項目があります。"); document.main.elements[i].focus(); return false; } } } </SCRIPT> <FORM NAME=main ACTION="sample.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" onSubmit="return submitCheck()"> <SELECT NAME="kubun"><OPTION SELECTED value="err">↓【選択して下さい】</OPTION> <OPTION>りんご</OPTION> <OPTION>みかん</OPTION> </SELECT> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>

  • フォームのドロップダウンで未選択のチェックをしたいのですが、下記のよう

    フォームのドロップダウンで未選択のチェックをしたいのですが、下記のようにしたのですがうまくいきません。・・・原因は id[1] だと思うのですが、こういう場合JavaScriptには、どのように記述すればよいのでしょうか? ※ドロップダウンの name="id[1]" は、変更できません。 よろしくお願いします。 <script language="JavaScript"> <!-- function check(){ if(document.cart_quantity.id[1].selectedIndex == 0){ alert('選択してください'); return false; } return true; } //--> </script> <form name="cart_quantity" method="post" action="" onSubmit="return check()"> <select gtbfieldid="272" name="id[1]" id="attrib-1"> <option value="1" selected="selected">選択してください</option> <option value="2">いちご</option> <option value="3">みかん</option> <option value="4">りんご</option> </select> <input type="submit" value="送信" name="submit"> </form>

  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

  • 入力フォームのテキストのエラーメッセージについて

    javascript 2つのセレクトボックスを全て選択されていないと、「テキストによるエラーメッセージを表示させるコード」を調べています。 該当コードは<script>■■四角の記号の部分です。 セレクトボックスを2つとも未選択でsubmitを押すと、アラートのメッセージとテキストエラーによるメッセージ2つが同時に表示されるようになっています。 コードはきちんと起動します。 該当部分のdocument.querySelector('.err')?.remove();の意味が理解できずにいます。 insertAdjacentHTMLで出したテキストエラーをセレクトボックスが空欄でない時に非表示にするとい解釈のようですが、あってますでしょうか? class名やid名に('.err')?という名前は使用していませんがドットに.errとクエスチョンマーク?とはどういう意味なのでしょうか? 条件演算子の?でしょうか条件演算子の構文で変数 = 条件 ? 値1 : 値2;の構文とも違うようですし。 分からずにいます。回答よろしくお願いいたします。 ---HTMLのコード--- <body> <form action="form1.php" method="post" id="form"> 選択項目①: <select id="fruits" class="select1" name="fruits"> <option value="">果物を選択する</option> <option value="リンゴ">>リンゴ</option> </select> 選択項目②: <select id="fruits2" class="select1" name="fruits2"> <option value="">食事を選択する</option> <option value="ごはん">>ごはん</option> </select> <div class="alert15"></div><!--alert15 2つのフォーム全て記入がない場合ここにテキストエラーを表示する--> <button id="submit" class="yohaku"> </button> </form> ---javascriptののコード--- <script> const form = document.querySelector('#form'); const fruits = document.querySelector('#fruits'); const fruits2 = document.querySelector('#fruits2'); // セレクトボックスを選択されてないとアラートによるエラーメッセージを表示 form.addEventListener('submit', function(event) { let msg = ""; if (fruits.value == "") msg += "選択項目①:※選択項目①を選択して下い。\n"; if (fruits2.value == "") msg += "選択項目②:※選択項目②を選択してください。\n"; if (msg != "") { event.preventDefault(); alert(msg); } }); </script> ■■ <script> // 2つとも全て選択されてないとテキストによるエラーメッセージの表示 form.addEventListener('submit', e=>{ document.querySelector('.err')?.remove(); document.querySelector('.alert15').insertAdjacentHTML('afterend',`<span class="err">※選択項目①と選択項目②を全て選択して下さい。</span>`); },true); </script> </body>

  • Request.QueryString

    Request.QueryStringのことで質問です。 下記を何度も選択しなおすと **.asp?kubun=東京&kubun=大阪&kubun=東京・・・ と増えていきます。 Request.QueryStringを入れてあるのは、Request("kubun")以外の中身を引いていきたいからで、Request("kubun")は除外したいのです。 何か簡単な方法はないでしょうか。 **.asp?user=1&lg=yes であったり **.asp?ken=1&part=3 であったりします その後に、kubunを選択しても user=1&lg=yesを保持し、かつ、kubunを何回も選択しなおしたい。Request.QueryStringの中身は毎回異なる。 <SCRIPT language=JavaScript> function Select( parts ){ var i,Msg; Msg = "" ; for (i = 0; i < parts.options.length; i++){ if ( parts.options[i].selected ) { Msg += parts.options[i].value ; } } n = Msg location.href = window.location.pathname + '?kubun=' + n + '&<%= Replace(Request.QueryString, chr(10), "<BR>") %>'; } </SCRIPT> <select name="sl" onChange="Select(this)"> <OPTION SELECTED>↓選択</OPTION> <OPTION value="東京">東京</OPTION> <OPTION value="大阪">大阪</OPTION> <OPTION value="京都">京都</OPTION> </SELECT>

  • PHPで1つのFORM内から、2つのプログラムを実行

    初めまして! PHP&HTML初心者です。 現在あるプログラムを若干変更する事になりました。 <add.php3内> print "<FORM ACTION=$PHP_SELF METHOD=POST>\n"; print "<TEXTAREA COLS=80 ROWS=12 NAME=COMMENT WRAP=HARD>$CURCOMMENT</TEXTAREA>"; print "<TEXTAREA COLS=80 ROWS=6 NAME=NOTE WRAP=HARD>$CURNOTE</TEXTAREA>"; print "<BR><B><INPUT TYPE=BUTTON VALUE=\" accept \" onclick=\"this.form.submit();\"></B>"; print "<SELECT NAME=\"CommentState\">\n"; print "<OPTION>東京</OPTION>\n"; print "<OPTION>大阪</OPTION>\n"; print "</SELECT>\n"; print "<INPUT TYPE=BUTTON VALUE=\"submit\" onclick=\"backScript(change.php3);\">\n"; print "</FORM>\n"; print "<INPUT TYPE=BUTTON VALUE=\"submit\" onclick=\"backScript(change.php3);\">\n"; ←が実行されず、 ボタンを押しても無反応です。 上のacceptボタンは正常に動作しています。 change.php3とadd.php3を一つにまとめるというのは、設計上不可能です。 同じFORM内で、2つの関数(1つは自分自身)を実行する事は可能でしょうか? 同じ入力テキストエリアを共有しているので、FORMを2つに分けるのも難しいかと思います。 長々と書いてしまいましたが、いいアイデアがあれば是非教えてください!

    • 締切済み
    • PHP
  • return falseが効かない

    formで申し込みのステップ中に、selectで必須選択させる部分があり、値があれば、次に進むように考えています。 選択していない場合、アラート自体は表示しますが、ダイアログをOKすると、結局は次のページでsubmitしてしまいます。 本当は、止めたいのですが、、、。 気になる点としては、select部分を表示する場合としない場合があり、DBからの値によって、phpで表示しているくらいでしょうか。 javascriptを書く位置をいろいろ変えても結果はかわりません。 エラーもでません。 何か重大な間違いなどあるのでしょうか?。 <head> <script Language="JavaScript"> <!-- function check(){ var flag = 0; if(document.form.camp.options[document.form.camp.selectedIndex].value == ""){ flag = 1; } if(flag==1){ alert('選択されていません'); // 選択されていない document.form.camp.focus(); return false; // 送信を中止 } } // --> </script> </head> (~いろいろあって、、~) <form name="form" method="post" action="damy.php" onSubmit="check()"> <select name="camp" id="camp"> <option value="">--選択してください--</option> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> </select> (~いろいろあって、、~) <input type="submit" value="次に進む"> /form>

  • セレクトボックスの選択項目を変える

    セレクトボックスの選択項目を変えるには どうすればいいですか? <FORM action=./ method=post> <SELECT name=server> <OPTION value=2 selected>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> </SELECT> </FORM> こういうフォーム(FORMやOPTIONにnameがない)で [4]を選択したいです このフォームを書き換えないで(スクリプトでの書き換えなら○) どうにか変えることはできないでしょうか? IEのみの対応でいいので、お願いします

  • セレクトボックス の 選択規制

    今、フォームで入力画面を作っています。 その中にセレクトボックスが4つアリ、現在「未選択」の場合エラーチェックをするようにしています。 そして、ここにもうひとつのチェックを追加したいのですが皆目見当が付きません・・・ 条件 kaikai、bunkai1、bunkai2、heikai  全てが不参加の場合 "参加する会を最低一つは選択してください。"と言うコメントをだすというものです。 皆様よろしくお願いいたします。 ********  現在の JavaScript  ********* <SCRIPT language="JavaScript"> <!-- //フォームチェック function fcheck() { if(document.form1.kaikai.value == "未選択") { window.alert("選択してください"); return false; } if(document.form1.bunkai1.value == "未選択") { window.alert("選択してください"); return false; } if(document.form1.bunkai2.value == "未選択") { window.alert("選択してください"); return false; } if(document.form1.heikai.value == "未選択") { window.alert("選択してください"); return false; } } //--> </SCRIPT> ********  HTML内のフォーム  ********* <table> <tr><th>1 ( * )</th> <td> <SELECT NAME="kaikai"> <OPTION selected VALUE="未選択">選択してください</OPTION> <OPTION VALUE="参加">参加</OPTION> <OPTION VALUE="不参加">不参加</OPTION> </SELECT></td></tr> <tr><th>2 ( * )</th> <td> <SELECT NAME="bunkai1"> <OPTION selected VALUE="未選択">選択してください</OPTION> <OPTION VALUE="参加">参加</OPTION> <OPTION VALUE="不参加">不参加</OPTION> </SELECT></td></tr> <tr><th>3 ( * )</th> <td> <SELECT NAME="bunkai2"> <OPTION selected VALUE="未選択">選択してください</OPTION> <OPTION VALUE="参加">参加</OPTION> <OPTION VALUE="不参加">不参加</OPTION> </SELECT></td></tr> <tr><th>4 ( * )</th> <td> <SELECT NAME="heikai"> <OPTION selected VALUE="未選択">選択してください</OPTION> <OPTION VALUE="参加">参加</OPTION> <OPTION VALUE="不参加">不参加</OPTION> </SELECT></td></tr> </table>