• 締切済み

【HTML5】selectにrequierd

HTML5でformのグループ化されたselectを必須にしたいと思い、 下記のようにrequiredを記述しました。 <select name="sample[]" required> <option value="">--</option> <optgroup label="カテゴリA"> <option value="1">選択肢1</option> <option value="2">選択肢2</option> </optgroup> <optgroup label="カテゴリB"> <option value="3">選択肢3</option> </optgroup> </select> そうすると、選択肢1を選択していても「必須項目です」と表示され、フォームが送信できません。 valueの値が1だと選択済として扱われないのでしょうか。 optgroupをなくすと選択肢1を選択した状態で送信できました。 valueの値は1で送信したいのですが、可能でしょうか。

  • HTML
  • 回答数1
  • ありがとう数1

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

selectのrequiredオプションは、 【引用】____________ここから If a select element has a required attribute specified, does not have a multiple attribute specified, and has a display size of 1; and if the value of the first option element in the select element's list of options (if any) is the empty string, and that option element's parent node is the select element (and not an optgroup element), then that option is the select element's placeholder label option.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.10 Forms — HTML5( http://www.w3.org/TR/2012/CR-html5-20121217/forms.html#attr-select-required )]より ・multiple属性が指定されていないこと ・size(表示サイズ)が 1 であること ・option 要素の値が空文字列であること ・その option 要素の親ノードが select 要素であること  ★optgroupはダメ と書かれています。よって送信されるはずです。  <select name="sample[]" required>   <option value="">選択してください。</option>   <optgroup label="カテゴリA">    <option value="1">選択肢1</option>    <option value="2">選択肢2</option>   </optgroup>   <optgroup label="カテゴリB">    <option value="3">選択肢3</option>   </optgroup>  </select> なお、IE8以前のものは、requiredオプションが無効ですので、javascriptで判断すると同時に、CGI側での処理をする必要があります。  ⇒Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html ) などで文法チェックをしてみたら??

関連するQ&A

  • selectの選択不可など

    いつもお世話になっております。 ちょっと悩んでいるのですが、プルダウンで特定の項目だけ選択不可にする事は可能でしょうか? HTMLだけで実現したいのですがうまくいきません。過去ログを見ましたがjavascriptは使用したくないのです。 なにか方法はございますでしょうか? また、とりあえず下記のソースで行っているのですが、(やりたいことは果物・野菜を選択不可にしたい) label部分がbold斜体になってしまってなんだか汚いのです。 この部分のスタイルを調整するにはどうすればいいのでしょうか?どこにやっても果物・野菜のスタイルが変わりません。 <select size="10" name="a[]" muliple> <optgroup label="果物"> <option>りんご</option> <option>みかん</option> </optgroup> <optgroup label="野菜"> <option>キャベツ</option> <option>きゅうり</option> </optgroup> </select> ご存知の方がいらっしゃいましたらおおしえいただければ幸いです。

    • ベストアンサー
    • HTML
  • <SELECT>の<option value="#">で#にリンクされるような形でcsv2tableをつかってcsvテーブルを出したい

    説明がうまくできないのですが 通常、option valueの値を下記のように <select id="pref" name="pref" class="selectable"> <optgroup label="海の魚"> <option value="001.html">真鯛</option> <option value="002.html">ガシラ</option>     </optgroup>     <optgroup label="川の魚"> <option value="003.html">鮎</option> <option value="004.html">鯉</option>     </optgroup> </select> となっている場合、真鯛を選択すると001.htmlにジャンプしますよね。 こういうのの応用で、↓ここのように http://allabout.co.jp/internet/javascript/closeup/CU20080229A/index2.htm csvから表を呼び出して表示するようにしたいのですが、具体的にどのようにすればよいでしょうか? 上記サイトでは <input>タグで呼び出すようにしていますので、物理的に不可能な場合は最終<input>タグでもいいかなと思っているのですが、情報が多いためできればインターフェースをすっきりさせたい面もあって<select>メニューから選択し、それが反映されるようにしたいのですが、どのようにすればよいでしょうか? 当方、htmlとcssの知識は多少ありますが、jsやajaxの知識はあまりありませんので、できるだけ詳しく教えていただけるとありがたいです。 ajaxを使用する場合、ライブラリはJquery1.3を使用していますので かち合わないようにお願いします。 イメージ的には、下記のようなものが作りたいです。 このままだと動かないですけど・・・イメージとして・・・ <select id="pref" name="pref" class="selectable"> <optgroup label="海の魚"> <option value="         $('#fish').csv2table('001.csv',{ select : [0,1,2] });"       >真鯛</option> <option value="         $('#fish').csv2table('001.csv',{ select : [0,3,4] });"      ">ガシラ</option>     </optgroup>     <optgroup label="川の魚"> <optgroup label="海の魚"> <option value="         $('#fish').csv2table('002.csv',{ select : [0,1,2] });"       >鮎</option> <option value="         $('#fish').csv2table('002.csv',{ select : [0,3,4] });"      ">鯉</option>     </optgroup> </select> <div id="fish"></div> イメージとしては、プルダウンで真鯛を選択すると、<div id="fish">●●</div>ここに、001.csvの0列・1列・2列目が吐き出され、またプルダウンから鯉を選択すると、002.csvの0列・3列・4列目が吐き出しなおされるというようなイメージです。

  • formのselectを選んだら有効になる

    以下のようなフォームで、「選択してください」以外を選択したら 送信ボタンが「有効」になるようにしたいのですが、うまくできません。 どなたか分かる方、教えてください。 よろしくお願いします。 <form> <select name="city"> <option value="" selected>-- 選択してください --</option> <option value="1">千代田区</option> <option value="2">中央区</option> <option value="3">港区</option> <option value="4">新宿区</option> <option value="5">文京区</option> <option value="6">台東区</option> <option value="7">墨田区</option> ・ ・ ・ </select> <input type="submit" value="送信" /> </form>

  • プルダウンのリンクについて

    javascriptで以前にもリンクについて質問させていただいたものです。 http://okwave.jp/qa4980697.html この質問で丁寧に回答いただいたのですが、私の知識(理解力)不足の為、自分の思ったような動作をしなかったため再度質問させていただきました。 質問としては、「.html」拡張子のみをリンクとして別ウィンドウに表示したいということです。それ以外の拡張子はございません。 自分で作成したソースを記載致しますので修正点等をご教授ください。 何分初心者なので全く検討違いな構文になっているかと思いますが、ご容赦ください。 <script type="text/javascript"><!-- function Jump(){ if (str.match(/\.html?$/)) window.open(str,'_blank'); } //--></script> <body> <title>test</title> <form name="form"> <select name="SEL1"> <option value="">-----------</option> <option value="aa">aa</option> <option value="bb">bb</option> </select> <select name="SEL2"> <option value="">-----------</option> <optgroup label="aa"> <option value="aa1">aa1</option> <option value="aa2">aa2</option> </optgroup> <optgroup label="bb"> <option value="bb1">bb1</option> <option value="bb2">bb2</option> </optgroup> </select> <select name="SEL3"> <option value="">-----------</option> <optgroup label="aa1"> <option value="aa3">aa3</option> <option value="xxx.xxx.html">リンク</option> </optgroup> </select>            ~省略~ <select name="SEL10"> <option value="">-----------</option> <optgroup label="xx"> <option value="xx1">xx1</option> <option value="yyy.yyy.html">リンク2</option> </optgroup> </select> <input type=button value="go" onClick="Jump()"> </form> としたのですが、エラーで ライン:8(<html><body>があるため) 文字:14 エラー:'str'は宣言されていません。 と表示されてしまいます。 前回fujillin様に丁寧に解説していただき参考サイトまでご教授いただいたのですが、拡張子を特定して判別するという作業が理解できず再度質問させていただきました。どのようにfunction部分を構成すればリンクとして表示できるようになりますでしょうか?ご面倒なことで申し訳ないですが、よろしくご教授お願い致します。

  • セレクトメニューで複数選択した値をpost送信する

    セレクトメニューで下のように、「multiple」を使えばカテゴリA~カテゴリDまでを全て選択する事ができますが、 <form method="post" action="test.php"> <select multiple name="category"> <option value="category_a">カテゴリA</option> <option value="category_b">カテゴリB</option> <option value="category_c">カテゴリC</option> <option value="category_d">カテゴリD</option> </select> </form> そうではなくて、下のように「すべてのカテゴリ」という項目を作って、カテゴリA~カテゴリDまでの値をPOST送信したいのですが、どのように記述すればよいのか四苦八苦しております。 <form method="post" action="test.php"> <select name="category"> <option value="?">すべてのカテゴリ</option>⇒この部分が解らない箇所です。 <option value="category_a">カテゴリA</option> <option value="category_b">カテゴリB</option> <option value="category_c">カテゴリC</option> <option value="category_d">カテゴリD</option> </select> </form> 色々調べてみたのですが、ないものですね。私の勉強不足だとは思いますが、どなたかご助言の程よろしくお願い致します。

    • 締切済み
    • PHP
  • javascriptについての質問です。複数の一つのselect等で選

    javascriptについての質問です。複数の一つのselect等で選択した文字の値をinputに表示したいのですが <FORM> <SELECT NAME="select1"> <OPTION VALUE=""></OPTION> <OPTION VALUE=" a">a</OPTION> <OPTION VALUE=" b">b</OPTION> <OPTION VALUE=" c"c</OPTION> </SELECT> <SELECT NAME="select2"> <OPTION VALUE=""></OPTION> <OPTION VALUE=" 壱">壱</OPTION> <OPTION VALUE=" 弐">弐</OPTION> <OPTION VALUE=" 参">参</OPTION> </SELECT> <input TYPE="text" NAME="text1" VALUE=""> </FORM> とこの様なフォームがあるとしまして 各SELECT で選択した各文字を <input TYPE="text" NAME="text1" VALUE="">に追加したいんです。 SELECT一つなら出来たのですが 複数になると追加をどうするのかやり方がわからなくて・・・ 一つのセレクトは一つしか選択できなくなればなお良いのですが・・・ どなたがご教授願えないでしょうか?

  • selectが複数ある場合の値取得について

    お世話になります HTML内に下記のようなフォームが複数存在しています。 select[name="page_name"]が変更されたときに値を取得しPHP に送信したいのですが、一番上にあるselectの値が取得されてしまいます。 ひとつのscriptで複数のselectに対応したい場合、どのような記述になりますでしょうか? 助けていただきたいです。よろしくお願いします。 <!--1番目のセレクト--> <form method="post" action="javascript:void(0);"> <input type="hidden" id="img_id" name="img_id" value="3"> <select name="page_name"> <option value="">選択してください</option> <option id="page_name" value="1">あああ</option> <option id="page_name" value="2">いいい</option> <option id="page_name" value="3">ううう</option> </select> </form> <!--2番目のセレクト--> <form method="post" action="javascript:void(0);"> <input type="hidden" id="img_id" name="img_id" value="4"> <select name="page_name"> <option value="">選択してください</option> <option id="page_name" value="1">あああ</option> <option id="page_name" value="2">いいい</option> <option id="page_name" value="3">ううう</option> </select> </form> <!--3番目のセレクト--> ---省略--- /*script*/ $('select[name="page_name"]').change(function() { var data = { 'page_name' : $('#page_name').val(), 'img_id' : $('#img_id').val() }; $('#name').text(data['img_id']); $.ajax({ type: "POST", url: "/admin/change/", data:data }); alert("画像使用ページを変更しました!"); return false; }); });

  • XHTMLのSELECTについて

    Java(フレームワークはSeasar)とXHTMLを使用したサイトなのですが、 データベースから取得した値を初期状態でSELECTに選ばせることができません。 DBで取得した値はJavaで public String menuDispFlg; と宣言された変数に格納されています。 デバッグで変数に値が格納されていることは確認できています。 SELECT部分を抜き出したソースが↓です。 <form id="form">  <div class="salesis">   <div class="salesIn">    <div class="main">     <div class="mainIn">      <div class="cF">       <div class="commontbl">        <table cellpadding="0" cellspacing="0">         <tr>            ・            ・            ・            (略)            ・            ・            ・          <th scope="row"><p>メニュー表示</p></th>          <td class="A">           <select id="menuDispFlg" name="menuDispFlg" tabindex="10">            <option value="0" label="制御しない"></option>            <option value="1" label="制御する"></option>           </select>          </td>         </tr>        </table>       </div>      </div>     </div>    </div>   </div>  </div> </form> DBからmenuDispFlg = "1"を取得しても、一番上の"制御しない"を常に選択した状態になっています。 このSELECTで"制御する"を選択するとちゃんとmenuDispFlg="1"で送信されるのですが、変更する前の値がわからなくなるのでどうにか修正したいです。 よろしくお願いいたします。

  • select値でのフォームのaction値の変更

    以下のようなフォームでselectの値によって PHPでactionのURLを変更させるようなことは出来るでしょうか。 <form name="form" method="GET" action="ここをselect値により変更"> <input type="text" name="word" id="word" value="" /> <select name="select" id="select"><option selected="selected" value="01">値01</option> <select name="select" id="select"><option selected="selected" value="02">値02</option> <select name="select" id="select"><option selected="selected" value="03">値03</option> </select> </form> 以上、どうぞ宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • <SELECT>タグでの selectを→間違い

    <SELECT>タグでの selectを初めに表示させたいのですが、 できますでしょうか。 先の質問、文を間違えました、すいません。 訂正します。 cが選択状態で、何も表示されず、 以下のbを選べば、2が表示されますが、 何も選んでいないとき、cを選択した状態で、 3を表示させておきたいのですが 可能でしょうか。 onloadで、読みだす方法とかで可能なのでしょうか。 よろしくおねがいいたします。 <p> <form name="test"> <select name="linkselect" onChange="n()"> <option value="">選択して下さい</option> <option value="1">a</option> <option value="2">b</option> <option value="3"selected>c</option> </select> </form> </p>

専門家に質問してみよう