必須入力条件の設定方法について

このQ&Aのポイント
  • ある条件が適用されると、指定の項目を必須入力にしたいです。具体的には、「対応状況」の項目が「対応済」になったら、「対応完了日時」を必須入力にしたいです。
  • 「対応状況」は、「対応中」と「対応済」の2つが選択肢で、submitを行った際に判定を行います。もし「対応状況」が「対応中」の場合は、「対応完了日時」は必須入力にしません。
  • しかし、「対応状況」が「対応済」になってsubmitした際に、「対応完了日時」が未入力の場合はエラーを出したいと考えています。クライアント側でHTMLとJavaScriptを使用して実装しています。
回答を見る
  • ベストアンサー

ある条件での必須入力について

いつもお世話になっております。 ある条件が適用されると、指定の項目を必須入力にしたいのですが、 やり方が全くわかりません。 検索してみましたが、全く引っかからないので、ご質問させていただきます。 やりたいこととしましては、 「対応状況」の項目が「対応済」になったら、 「対応完了日時」を必須入力にしたいのです。 「対応状況は」、「対応中」と「対応済」があり、どちらかを選択して、 submitします。 「対応状況」が、「対応中」の場合は、submitを行っても、 「対応完了日時」は必須入力にはしません。 「対応状況」が、「対応済」になって、submitした際は、 「対応完了日時」を必須入力として、入力されてない場合は、エラーを出したいです。 クライアント側は、html、javascliptにて行っています。 ソース等は、全く思いつかないので、記載できません。 全て人任せで申し訳ありませんが、 ご存知の方がいらっしゃいましたら、ご教授いただけないでしょうか。 よろしくお願いいたします。

  • HTML
  • 回答数3
  • ありがとう数12

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

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

No.2 の補足に対して 属性 required を使っているので、HTML5 で回答します アレ = ある条件、の対象となるタグ コレ = 指定の項目、のタグ とすれば、 var form = document.forms[アレとコレを含むフォームのname] form.elements[アレのname].addEventListener('change', createHandler(条件を満たすアレのvalue, コレのname), false); なので、 var form = document.forms['form01'] form.elements['jyoukyou'].addEventListener('change', createHandler('対応済', 'syuuryoubi'), false); それはそうと 誤: <option value="..."/> ... </option> 正: <option value="..."> ... </option>

taka78ube
質問者

お礼

再度ご回答ありがとうございます。 非常に勉強になりました。 補足に記載していただいた内容で、バッチリできました。 お忙しい中ご回答いただき、ありがとうございました。

その他の回答 (2)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

最近のブラウザなら - HTML5 の場合 <script>window.addEventListener('DOMContentLoaded', function(ev){ var form = document.forms['alpha']; function createHandler(value, reqName) { return function(ev){form.elements[reqName].required = (ev.target.value == value)}; } form.elements['ca'].addEventListener('change', createHandler('x', 'cb'), false); form.elements['sa'].addEventListener('change', createHandler('b', 'sb'), false); }, false)</script> <form name=alpha action=confirm.html><ul> <li> <input name=ta type=text required> <li> <input name=ca type=checkbox value=x> <input name=cb type=text> <li> <select name=sa><option value=a>対応中<option value=b>対応済</select> <input name=sb type=text> <li> <button type=submit>ok</button> </ul></form> 古いブラウザも考慮するなら - jQuery の場合 以下を利用します http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.0/jquery.validate.min.js <script src="jquery.min.js"></script> <script src="jquery.validate.min.js"></script> <script>$(function(){ var form = $('form[name="beta"]'); form.validate({ rules:{ 'ta': 'required', 'cb': { required:{ depends:function(){return form.find('*[name="ca"]').is(':checked')} } }, 'sb': { required:{ depends:function(){return form.find('*[name="sa"]').val() == 'b'} } } } }); })</script> <style>label.error { color:red; font-weight:bold; }</style> <form name=beta action=confirm.html><ul> <li> <input name=ta type=text > <li> <input name=ca type=checkbox value=x> <input name=cb type=text> <li> <select name=sa><option value=a>対応中<option value=b>対応済</select> <input name=sb type=text> <li> <button type=submit>ok</button> </ul></form>

taka78ube
質問者

補足

コードを見させていただいたのですが、理解できているようなできないような気がします。 実際のform部分はこのようになっています。 <form action = "sagyoutouroku.asp" method="POST" name="form01"> <input type="text" name="syuuryoubi"id="syuuryoubi" style="width:100%" rows=1 class="textbox" value="<%=Rs("作業終了日")%>"> <select name="jyoukyou" id="jyoukyou" required> <option value=""/>---対応情報選択---</option> <option value="対応中"/>対応中</option> <option value="対応済"/>対応済</option> </select> <input type="submit" value="作業内容登録"> </form> このような場合は、コードはどうなりますでしょうか。 ほんとに他人任せですいません。

回答No.1
taka78ube
質問者

お礼

ご回答ありがとうございます。 調べると出てくるものですね。 私の調べ方が悪かったんだと思います。 教えていただいたURLを見て、勉強します。 ありがとうございました。

関連するQ&A

  • メールフォームでの必須入力チェックについて

    はじめまして。PHP初心者です。PHPを使ってメールフォームを作成しています。入力画面で必須項目が記入されていなかったらエラー画面に飛ぶようにしたいのですが、なかなかうまくいきません。下のソースはサンプルを参考につくりました。 //入力画面 <?php if(isset($_POST['submit'])){ session_start(); $errflg = '1';   /*必須項目*/   if(($_POST['name']) == ""){     $_SESSION['name1'] = "・お名前";     $_SESSION['name1'] = $_POST['name1'];     $errflg = '0';   }else{     $_SESSION['name']="";   }       if($errflg == '0'){         header('Location: error.php');       exit();} ?> 流れとしては、名前の欄が入力されていなかったら、エラー画面に飛ばして「・お名前」と表示させたいです。もし他にいい方法やソースがありましたら教えてください。お願いします。

    • ベストアンサー
    • PHP
  • アクセスのフォームの必須項目入力確認方法について

    アクセスのフォームの必須項目を入力していないと「閉じる」ボタンを押下したとき、「○○入力項目に入力がない」というエラーメツセージが出るようにし、入力完了後、「閉じる」ボタンを押下すると閉じるようにしたいのですが・・・

  • 選択肢によって入力必須が変わるフォームの入力チェックJavaScrip

    選択肢によって入力必須が変わるフォームの入力チェックJavaScript フォームの入力チェックのJavaScriptを作成しています。 特定のラジオボタンにチェックを入れた場合のみ、 入力必須になるテキストボックスの 入力チェックJavaScriptを教えてください。 ラジオボタンが複数あるフォームで、 <input type="radio" name="type" value="type1" /> <label>タイプ1</label> <input type="radio" name="type" value="type2" /> <label>タイプ2</label> タイプ2を選んだ場合のみ、必須項目にしたいテキストボックスがあります。 <input type="text" name="name1" /> テキストボックスが空白だった場合にアラートを出すJavaScriptは 現在このようになっています。 (参考にしていたサイトがあるのですが、忘れてしまいました・・・。) $(function(){ $("form1").submit(function(){ if($("input[name='name1']").val()==""){ $("input[name='name1']").css("border","1px solid #A70F00"); alert('必須項目に未入力があります'); return false; }) }) このJavaScriptをさらに、if文で括って、 name="type" の value が type2 であれば・・・、という処理を追加すればよいのだと 思いますが、書き方が分からず困っています。 どうかよろしくお願いします。

  • OCNのメールフォームで入力必須項目を

    プロバイダがOCNで、ホームページを作っています。 メールフォームを設置したいのですが、 OCNのメールフォームで 名前やメールアドレスの項目を 入力していない場合、入力してくださいなどの注意がでるように 入力必須項目にしたいのですが、 OCNのメールフォームCGIを使った場合でも それはできるのでしょうか?? 教えて下さい。

    • 締切済み
    • CGI
  • 携帯サイトの入力フォームについて!修正画面編

    こんにちわ! お世話になります。 すごく初歩的な質問になってしまいます。 入力フォームを作っているんですけど・・。 入力→確認→修正→完了 ぜんぶ1ページにまとめて作ってるんですけど現在、確認画面から修正画面に行くときにGETメソッドになってしまいます。 確認画面のソースです。 <form id="form1" name="form1" method="post" action="Auction.php?1=<?=$_POST['1'];?>"> 入力内容:<?=$_POST['1'];?> <input type="submit" name="Submit" value="修正" /><input type="submit" name="Submit" value="完了" /> </form> せっかくPOSTで受け取っているのに修正するときはGETになっていてちょっとおかしいですよね。。。 いまいち入力フォームは苦手項目なので分かりません。。。

    • ベストアンサー
    • PHP
  • 必要時だけ必須記入にする方法

    現在フォームを使ってアンケートを設置し、必須項目は未記入にならないようjavascriptを組み入れています。 例としまして「愛犬の情報(名前や犬種)」を必須で入力してもらう感じです。 この後「2頭飼っている方」「3頭目」と必要によって追加で記入してもらうフォームスペースを設けたのですが、1頭しか飼ってないのならそのまま空白でsubmitを押して送信ができ、2頭目以降がいるならその部分が必須になって未記入だとアラートが出るようにする…そんなことなどできるでしょうか。 どうぞよろしくお願いいたします。

  • 入力必須フォーム→ エラーのページへ

    アンケートのフォームを作り、このタグで入力必須の項目を入力しないと送信できないようになったのですが、エラーのページの設定がわかりません。 <input type=hidden name="required" value="email,name> エラーになった場合、エラーのページへリンクするようにするタグをおしえてください。

  • ジャバスクリプト 入力項目チェック

    アンケートフォームを作成していて、入力必須項目とそうでないのがあります(そうでないものはすべてテキストエリア)。 必須項目は ・テキスト入力 ・4つのラジオボタンの中から1つを選ぶ ・プルダウンから1つを選ぶ があります。 テキスト入力では、電話番号、郵便番号、メールアドレス、の正規入力(半角英数で、@抜けチェック)を促したいのです(必須項目で未入力、未選択、誤表記があった場合、エラー画面が出るように)。 なかななかこれらの条件を満たしたジャバスクリプトソースを公開しているところがなくて困っています。 独学するにはちと時間がなく、あちこちのサイトをあたっているのですが、部分的には成功してもなかなか全部スッキリ決まりません。 どなたかお教えくださる方、よろしくお願いします。

  • プルダウンの必須チェックができない

    今必須チェックのスクリプトを組んでいます。 プルダウン項目の必須チェックを行っているところで、項目を選択しても「必須入力です」というアラートが出てしまいます。 ソースは以下参照です <!-- function hissuCheck(frm) { /* 必須入力のname属性 */ var paramArray = Array(23個あるが字数制限のため省略) /* 必須入力アラート用 */ var alrtArray = Array(23個あるが字数制限のため省略); /* 配列長 */ var len = paramArray.length; for(i=0; i<len; i++) { var obj = frm.elements[paramArray[i]]; if(obj.type == "text") { if(obj.value == "") { alert(alrtArray[i]+"は必須入力です"); frm.elements[paramArray[i]].focus(); return false; } } else if (obj.type == "select") { for(varSelected=0, j=0; j<obj.length; j++) { /*選択されていたらvarSelectedフラグをプラス*/ if(obj[j].selected)varSelected++; } if(varSelected == "") { alert(alrtArray[i]+"は必須入力です"); return false; } } else { for(varChecked=0, k=0; k<obj.length; k++) { .....以下省略 } } } return true; } // --> HTML箇所も書きたかったのですが、ちょっとソースが長くなってご迷惑をおかけしてしまうと思い、割愛させて頂きました。 もし必要であれば一言頂ければと思います。 忙しい中すいませんが、どなたかご教授宜しくお願いします。

  • フォームの必須項目の設定

    今自分でホームページを作成しているんです。 その中でお問い合わせフォームを作成しているんですが、必須項目の設定が分からないんです。 例えば「名前」を必須項目にした場合、名前を入力しないと先へ進めないといった具合に設定したいんです。 もしよろしければアドバイスお願いします。 ちなみに、使用しているのはDreamWeaverMXです。

専門家に質問してみよう