SELECTタグで変更禁止にする方法

このQ&Aのポイント
  • SELECTタグを使用して変更を禁止する方法について調査しています。disabled属性やreadonly属性を使用することが考えられますが、選択されている項目を保持しながら変更禁止にする方法を探しています。
  • SELECTタグで変更を禁止する方法を調査しています。disabled属性やreadonly属性を使用する方法もありますが、選択されている項目を保持しながら変更禁止にする方法を探しています。
  • SELECTタグで変更を禁止する方法について調べています。SELECTタグにdisabled属性やreadonly属性を使用する方法もありますが、選択されている項目を保持しながら変更禁止にする方法を探しています。
回答を見る
  • ベストアンサー

SELECTタグで変更禁止にする方法

下記のようなSELECTで変更を禁止したいです。 <form name="MyForm"> <select name="MySelect" multiple> <option val="1">A</option> <option val="2" selected>B</option> <option val="3">C</option> <option val="4" selected>D</option> </select> disabledという手もありますが、選択されている状態を保持したまま 変更禁止にしたいです。 また、textareaなどに入れて、readonlyとという手もありますが、 状態によっては変更可能にもしたいので、SELECTのままが良いです。 もちろん方法論はjavascript以外でも構いません。 宜しくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

変更されるたびに元にもどせばどうでしょう? <script> function changeFunc(obj){ for(var i=0;i<obj.options.length;i++){ var v= obj.options[i].value; obj.options[i].selected=false; if(v==2 || v==4) obj.options[i].selected=true; } } </script> <form> <select name="MySelect" multiple onchange="changeFunc(this)"> <option value="1">A</option> <option value="2" selected>B</option> <option value="3">C</option> <option value="4" selected>D</option> </select>

coogon21
質問者

お礼

その方法で凌ごうかと思います。 ご回答ありがとうございました。

関連するQ&A

  • selectタグに直接onChangeを書かないイベント取得方法

    javascriptが余り詳しくないので困っています。 <select id="select1" name="select1"> <option value="apple">りんご</option> <option value="banana">バナナ</option> </select> このようなselectの選択リストから値を変更した時にイベントを取得したいのです。 普通に考えると <select id="select1" name="select1" onChange="xxx"> のようにonChangeを使えば簡単なのですが、 困ってしまうのがこのselectは自動生成されるものなので、 直接手を加えることができないのです。 なのでselect文には手を加えずに、値が変更されたときに 何か関数を呼び出すようなことをしたいのです。 無理ならしょうがないのですが、何か手があれば教えてください。 よろしくお願いします。

  • selectフォームの未選択の項目にフラグ

    下記のselectフォームを用いてASPにデータを渡したいのですが、 未選択の項目にフラグを立てて(例えば"0")データを渡すことは可能でしょうか? ご教授宜しくお願い致します。 <select name="hoge" multiple> <option value="1" selected>111</option> <option value="2">222</option> <option value="3">333</option> <option value="4">444</option>

  • 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
  • 新しい窓を開く記述がblankで上手くいかないです。

    <!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; top.MainFrame.location.href = document.myForm.myMenu.options[mySelect].value; } // --> 上のJavaScriptで、下のformで選択されたページをMainFrameに表示しています。 今回、選択したページを新しい窓で表示したいのですが、locationの 前にblankを書き加えても飛びません。 どの様に記述すればいいのでしょうか?ご指導よろしくお願いします。 <FORM name="myForm"> <select name="myMenu" onChange="myGo()"> <OPTION value="http://---1">◆1 <OPTION value="http://---2">◆2 <OPTION value="http://---3">◆3 </SELECT> </FORM>

  • メニューの選択項目に応じて、もう1つのメニューの内容を変更する方法

    メニューの選択項目に応じて、もう1つのメニューの内容を変更する方法 2つのコンボがります。 1個目は、メーカーを選択します。 2個目は、機種を選択します。 下記ソースでは、valueの値が取得でいないようです。 (例) makerでドコモを選択したらvalueに1をセット sendwayでドコモ機種(2)を選択したらvalueに2をセット このようなことを実現したいのですが... よろしくお願いします。 <script language="JavaScript"><!-- menuItem = [["ドコモ機種(1)","ドコモ機種(2)"]["ドコモ以外機種"]]; function setMenuItem(n) { len = document.myForm.sendway.options.length; for (i=len-1; i>=0; i--) { document.myForm.sendway.options[i] = null; } for (i=0; i<menuItem[n].length; i++) { document.myForm.sendway.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } } // --></script> <select name="maker" onChange="setMenuItem(this.selectedIndex)"> <option value="1" <?= $val?>>ドコモ</option> <option value="2" <?= $val?>>ドコモ以外</option> </select> <select name="sendway" > <option value="1" <?= $val?>>ドコモ機種(1)</option> <option value="2" <?= $val?>>ドコモ機種(2)</option> <option value="3" <?= $val?>>ドコモ以外機種</option> </select>

  • jquery での <select multiple="true" > について

    jquery (ver1.2.6) で、<select multiple="true"> 内の option を、 全て selected 状態にする方法がわかりません。 単純な <select> タグであれば、 $("select").val("hogehoge"); のように、value にセットすれば選択状態になるみたいなのですが、 multiple の場合はどのように行うのでしょうか。 試しに記述してみたソースは以下のようなものなのですが、 動作いたしません、、 $('#selecttest').each(function() { $(this).attr('selected', 'selected'); }); もしよろしければ、コードまたは参考URLを教えていただけないでしょうか。 よろしくお願いいたします。

  • 複数のプルダウンメニューの作り方。

    ・Aリスト、Bリスト…とプルダウンメニューを複数含んだフォームを一つのhtmlに作りたいのですが、上手くいきません。 一つのフォームに一つのプルダウンメニューは上手くいくのですが、Javascriptを二つ並べると動かなくなります。 とりあえず関数名を重複しない様にしたらいいという事だけはネットで調べてわかりました。 今は、下記の状態になっています。 <script language="JavaScript"> <!-- function MENU(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --> </script> <form name="myForm"> <select name="myMenu" onChange="MENU()"> <option value="">A</option> <option value="a001.html">A001</option> <option value="a002.html">A002</option> <option value="a003.html">A003</option> </select> <select name="myMenu2" onChange="MENU()"> <option value="">B</option> <option value="b001.html">B001</option> <option value="b002.html">B002</option> <option value="b003.html">B003</option> </select> </form> ご指南の程宜しくお願いします。

  • 複数 selectフォームから今回onchangeで変更した項目を知りたい

    phpプログラムで、画面上にある複数のselectフォームを使用してselectフォームの内容が選択されれば、selectフォームの値を取得してデータの 抽出を行い、選択された内容の表示を行なおうと思っています。 onChange='submit()' で選択された内容をpostで受け取って再表示を行い、項目にあったデータを取り出すことは出来てますが、直近に変更された項目が何か(どのselectフォームの内容(年度、組織、社員及び商品の項目)が変更されたのか?)を知りたいのですが、いい方法を教えていただけないでしょうか? よろしくお願いします。 sample.phpの内容 <?php $nen = $_POST['nend']; $sosi = $_POST['so']; $syin = $_POST['sa']; ?> <html> <body> <form action="sample.php" method="post"> <select name='nend' onChange='submit();'> <option value=2007 selected>2008</option> <option value=2006>2007</option> <option value=2005>2006</option> </select> <select name='so' onChange='submit();'> <option value=0 selected>全社</option> <option value=01 >本社</option> <option value=02 >A支店</option> <option value=03 >B支店</option> </select> <select name='sa' onChange='submit();'> <option value=0 selected>社員</option> <option value=1 >田中</option> <option value=2 >佐藤</option> <option value=3 >鈴木</option> </select> <select name='sy' onChange='submit();'> <option value=0 selected>商品</option> <option value=1 >A商品</option> <option value=2 >B商品</option> <option value=3 >C商品</option> </select> </form> </body> </html>

    • ベストアンサー
    • PHP
  • プルダウンメニューで選んだリンクを別窓で表示させたい

    こんにちは。 プルダウンメニューで選んでもらうと 選んでもらった日にちのところに飛ぶように作っています。 ★GO★を押してもらった日にちの日記を 別窓で表示させるにはどこに _blank を入れたらいいのでしょうか? よろしくお願いします○┓ペコリ <script language="JavaScript"><!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --></script> <form name="myForm"> <select name="myMenu"> <option value="http://blog.livedoor.jp/***"> ■ブログTOP■ <option value="http://blog.livedoor.jp/01**" > *2/2の日記 <option value="http://blog.livedoor.jp/02**" > *2/3の日記 </select> <input type="button" value="★GO★" onClick="myGo()"> </form>

  • checkboxとselectメニューの連動およびalertの出し方

    メールフォームを利用し、簡単なショッピングフォームを作成しているのですが、壁にぶち当たりましたので、恐縮しておりますが、はじめて質問させて頂きます。よろしくお願い致します。 function setTF(cOBJ,fName1,fName2) { document.myFORM[fName1].disabled = !cOBJ.checked; document.myFORM[fName2].disabled = !cOBJ.checked; } function delWarn(obj) { if(obj.checked) { var cf = confirm( '数量も必ずご入力ください' ); if(cf) obj.checked = true; else obj.checked = false; } } ---- <form action="~test.cgi" method="post" name="myFORM"> <INPUT type="checkbox" name="item1" value="商品1" onClick="setTF(this,'item1kazu','service1'),delWarn(this)">商品1 <SELECT name="item1kazu" disabled> <OPTION value="">数量</OPTION> <OPTION value="(1本)">1</OPTION> <OPTION value="(2本)">2</OPTION> <OPTION value="(3本)">3</OPTION> </SELECT>本<br> <INPUT type="checkbox" name="item2" value="商品2" onClick="setTF(this,'item2kazu'),delWarn(this)">商品2 <SELECT name="item2kazu" disabled> <OPTION value="">数量</OPTION> <OPTION value="(1本)">1</OPTION> <OPTION value="(2本)">2</OPTION> <OPTION value="(3本)">3</OPTION> </SELECT>個<br> <INPUT type="checkbox" name="item3" value="商品3" onClick="setTF(this,'item3kazu'),delWarn(this)">商品3 <SELECT name="item3kazu" disabled> <OPTION value="">数量</OPTION> <OPTION value="(1本)">1</OPTION> <OPTION value="(2本)">2</OPTION> <OPTION value="(3本)">3</OPTION> </SELECT>セット<br> <p><INPUT type="checkbox" name="service1" value="サービス1" disabled>サービス1</p> <input type="submit" name="sendBtn" value="内容確認画面へ"> </FORM> 内容は、 商品1、2、3にそれぞれチェックボックスをおき、それを選択したらそれぞれ数量の選択(selectメニュー)がはじめて出来る様になる。さらにサービス1は商品1を選択するとチェック可能になるというものです。ここまでは順調に実現できました。 問題は、商品を選択した時のみ数量の選択を必須にしたい、という所です。 使用予定のcgiでは、入力必須項目に設定すると、商品の選択をしていない数量部分もおのずと必須になり具合が悪いため、 javascriptのalertを利用し上手く制御できやしないかと、ない頭をひねって、現在の状況で止まってしまいました...。 現状、商品1をクリックすると「数量も必ずご入力下さい」というalertがでて、数量選択がアクティブに。ただし、商品2、商品3はalertが出ません。 また、もしこれが実現可能になったとしても商品ごとにalertが表示され、うっとおしいのはさることながら、あくまでも意識づけで入力必須ではないため、もっと良い方法はないか、是非ご教授願いたいと思っております。 理想としては、商品にチェックしたもののみ数量選択を必須とする、 →sbmitを押した際、「数量を選択して下さい」というalertを表示。 が実現できればと願っております。 (チェックboxなしで数量のみでやればカンタンなのでしょうが、今回はこちらの構成でいきたいと思っております...) どなたか是非アドバイス頂ければ幸いです、よろしくお願い致します。

専門家に質問してみよう