質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

2076閲覧

プルダウンの初期値を選択時には、除外する方法

daiti916

総合スコア17

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/09/21 04:56

編集2018/09/21 05:31
<select id="changeSelect" onchange="entryChange2(),changeItem(this),imgChange(this);"> <option value="">2013年以前</option> <option value="select2013">2013年</option> <option value="select2012">2012年</option> <option value="select2011">2011年</option> </select>

初期表示のみ「2013年以前」を表示しておいて、プルダウンを押して選択するときに「2013」・「2012」・「2011」のみ選択可能にしたいです。

PCのみでは稼動ができるようにしたのですが・・・iPhoneでは上手く稼動せず断念しました。

iPhoneでも、初期表示値と選択値を変えることは可能でしょうか?

宜しくお願いいたします。

*追記*
entryChange2()では、2013年を選択したときに、他の年のデータを表示にしています。

function entryChange2(){ //プルダウンを選択されたときに、Class「on」を削除 $('.on').removeClass(); //プルダウン押下時:変更処理 if(document.getElementById('changeSelect')){ id = document.getElementById('changeSelect').value; if(id == 'select2013'){ //2013年表示 document.getElementById('Box2017').style.display = "none"; document.getElementById('Box2016').style.display = "none"; document.getElementById('Box2015').style.display = "none"; document.getElementById('Box2014').style.display = "none"; document.getElementById('Box2013').style.display = ""; document.getElementById('Box2012').style.display = "none"; document.getElementById('Box2011').style.display = "none"; }else if(id == 'select2012'){ //2012年表示 document.getElementById('Box2017').style.display = "none"; document.getElementById('Box2016').style.display = "none"; document.getElementById('Box2015').style.display = "none"; document.getElementById('Box2014').style.display = "none"; document.getElementById('Box2013').style.display = "none"; document.getElementById('Box2012').style.display = ""; document.getElementById('Box2011').style.display = "none"; }else if(id == 'select2011'){ //2011年表示 document.getElementById('Box2017').style.display = "none"; document.getElementById('Box2016').style.display = "none"; document.getElementById('Box2015').style.display = "none"; document.getElementById('Box2014').style.display = "none"; document.getElementById('Box2013').style.display = "none"; document.getElementById('Box2012').style.display = "none"; document.getElementById('Box2011').style.display = ""; } } }

changeItem(this)では、選択後にプルダウンの中フォントや枠組みのcssを変更しています。

function

1 2 if( obj.value == ""){ 3 obj.style.border = '1px solid #003a62'; 4 obj.style.fontWeight = "bold"; 5 obj.style.fontSize = "107.14%"; 6 }else{ 7 obj.style.border = '1px solid #003a62'; 8 obj.style.fontWeight = "bold"; 9 obj.style.fontSize = "107.14%"; 10 } 11}

imgChange(this);では、選択後画像プルダウンに付随している画像の切替をしています。

function imgChange(parts){ fname=parts.options[parts.selectedIndex].value; if(fname==0){document.imgsmp.src=img0.src;} //横矢印 if(fname =="select2013"){document.imgsmp.src=img1.src;} //下矢印 if(fname =="select2012"){document.imgsmp.src=img1.src;} //下矢印 if(fname =="select2011"){document.imgsmp.src=img1.src;} //下矢印 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/09/21 05:09

onchangeでは何をしているのでしょうか?
x_x

2018/09/21 05:24

PCで「のみ選択可能」にしているところはどこですか?
daiti916

2018/09/21 05:27

cssでレシポンシブにしているので、同じ画面をPCとSPで見ると、表示形式が変わるようにしています。
x_x

2018/09/21 05:32

どういうことでしょうか? PCでは「2013年以前」が選択できるのですか?
daiti916

2018/09/21 05:35

PCでもSPでも、「2013年以前」が選択時に表示されてしまっていいるので・・・選択時にPC・SP両方とも「2013年以前」を非表示にしたい。です。
x_x

2018/09/21 05:36

では、「PCのみでは稼動ができるようにしたのですが」というのはいったいどのコードを指していますか?
daiti916

2018/09/21 05:38

その部分は、ややこしくなる為・・・消してしまいました。申し訳ありません。
guest

回答3

0

ベストアンサー

<option value="02" disabled="" selected="">2013年以前</option> でおっしゃっている動きにはなるのかなぁと思いますが、 選択したくない、未選択にしたい、ということは二度とできなくなります。 動きとしてあまり見たことがないのかなぁと思います。

普通に2013年以前も選択することが可能にしておいて
アクション時に必須チェックを入れるのが自然なUIの動きだと思います。

投稿2018/09/21 05:38

ms5025

総合スコア292

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiti916

2018/09/21 05:41

初期表示に「2013年以前」を表示しておりまして、プルダウンをクリックして開くと、「2013年以前」は非表示の状態で「2013」・「2012」・「2011」のみ表示することはできないということですかね・・・?
ms5025

2018/09/21 06:07

できないというより、不思議な動きだなぁと思います。 removeして強引に・・などはおすすめしません ほかの誰かが見たときに「これ何してんの?」というやり取りが 必ず発生するからです。 ユーザに明示的に選択させる意味でも、初回から2013年を選択しておくのは あまりいい作りではありません。 よって<option value="">2013年以前</option> は必要だと思います。 やはりフォーカスアウトやsubmit時にvalidateなどで必須チェックを入れるほうが私は美しい作りだと思いますが。
daiti916

2018/09/21 06:22

ありがとうございます。 これで大丈夫そうでしたので、ベストアンサーにさせていただきます。 お忙しいところ、誠にありがとうございました。
guest

0

onchangeの処理が不明なのでなんともですが例えば以下のような形とか。

jQuery

1//プルダウンがクリックされた時にvalueが""の要素(=2013年以前)を選択不可にする 2$("#changeSelect").on('click',function(){ 3 $('#changeSelect option[value=""]').prop('disabled','disabled'); 4})

追記
ちょっと調べてみたらこんなのもあるみたいです。

HTML

1<select id="changeSelect"> 2 <option value="" selected hidden>2013年以前</option> 3 <option value="select2013">2013年</option> 4 <option value="select2012">2012年</option> 5 <option value="select2011">2011年</option> 6</select>

ブラウザの種類やバージョン(特に古いブラウザ)によってはうまいこといかないみたいですが…。

投稿2018/09/21 05:14

編集2018/09/21 05:26
madoka9393

総合スコア992

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiti916

2018/09/21 05:16

選択時は「2013年以前」を表示されないようにしたいです・・・。
madoka9393

2018/09/21 05:19

であれば少々乱暴ですが非表示…ではなく削除してしまうとか。 $('#changeSelect option[value=""]').remove();
daiti916

2018/09/21 05:24

エラーが起きてしまって、正常に機能しない模様です・・!
madoka9393

2018/09/21 05:27

全容が見えない(onchangeに指定されているスクリプトの中身がわからない)のでなんともですが、 恐らくremoveをしたことでその何れかに影響が出ているのかもしれませんね…。 スクリプトの中身まで含めて質問文に追記してあげるとより回答がしやすくなるかもしれません。
daiti916

2018/09/21 05:29

selected hiddenを試してみたのですが、PC、SPともに機能していませんでした・・・
guest

0

entryChange2(),changeItem(),imgChange()の仕様がわからないのでなんともいえませんが
たとえばこう?

html

1<select onFocus="this.options[0].disabled=true"> 2 <option value="">2013年以前</option> 3 <option value="select2013">2013年</option> 4 <option value="select2012">2012年</option> 5 <option value="select2011">2011年</option> 6</select>

投稿2018/09/21 05:12

yambejp

総合スコア114837

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiti916

2018/09/21 05:16 編集

選択時は「2013年以前」を表示されないようにしたいです! また上記を試したところ、PCでは上手くいくのですが、iPhoneからですと、選択できてしまいました・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問