• ベストアンサー

プルダウンで現在の年月日を取得する方法

フォーム画面プルダウンメニューにて今日の年月日を自動的に取得表示する方法を探しておりましたら http://okwave.jp/qa2538301.html のANo.2様の回答が丁度教えてほしい事だったのですが、このソースをコピーペーストして検証すると、IE7では問題なく動作するのですが、Firefox2.00.2では年のみ現在の年(2007)を取得してくれません。月と日は問題なく取得されています。 何がいけないのでしょうか?お分かりになる方ご教授いただけますようよろしくお願いいたします。

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは name属性を数値をするのは好ましくないです先頭にアルファベットをつけてやりましょう <FORM method="post" action="○○.cgi" name="123"> ==> <FORM method="post" action="○○.cgi" name="a123"> forms["123"].(3箇所) ==>> forms["a123"]. if(o[i].value==year+"abc"){ ==>> if(o[i].value==year+"年"){ if(o[i].value==month+"def"){ ==>> if(o[i].value==month+"月"){ if(o[i].value==day+"ghi"){ ==>> if(o[i].value==day+"日"){ 僕の作ったのも載せときますね(^^) <script language=javascript><!-- window.onload=function(){ now = new Date(); yea = now.getFullYear(); mon = now.getMonth()+1; day = now.getDate(); obj1 = document.today.nen; obj2 = document.today.gatu; obj3 = document.today.niti; for(i=0; i<5; i++) { m = i+2005; obj1.options[i] = new Option(m+"年",m+"年"); if(m == yea){ obj1.options[i].selected =true; } } for(i=0; i<12; i++) { n = i+1; obj2.options[i] = new Option(n+"月",n+"月"); if(n == mon){ obj2.options[i].selected =true; } } for(i=0; i<31; i++) { l = i+1; obj3.options[i] = new Option(l+"日",l+"日"); if(l == day){ obj3.options[i].selected =true; } } } //--> </script> </head> <body> <form name="today"> <select name="nen"></select> <select name="gatu"></select> <select name="niti"></select> </form>

その他の回答 (1)

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

問題は下記です year = date.getYear(); getYear()はほとんどのブラウザが1900年からの年数を返します (例:2007年の場合は107) ただ、古いブラウザは2000年問題の1つとして話題にもなりましたが、 2000年までは1900年からの年数を返し、 それ以降は完全な年数(2007)を返してしまうというのもあります そんな問題のあるブラウザにあわせるならば year = date.getYear(); if(year < 2000)year += 1900; に変更でOKです ある程度前途以降のブラウザを対象とするならば year = date.getFullYear(); としても大丈夫だと思います それにしてもIE7ではOKなんですね 新しいブラウザなのにまた不思議な仕様にしているようで・・・

hirokamen
質問者

補足

ご回答ありがとうございます。 year = date.getFullYear(); で解決いたしました。 そこで実際に、手持ちのフォームに移行しようと試したのですが、うまく動作してくれません。 例えば、 <FORM method="post" action="○○.cgi" name="123"> <select name="abc">←年 <select name="def">←月 <select name="ghi">←日 と定義されているプルダウンがあると仮定した場合、 http://okwave.jp/qa2538301.html のANo2様のスクリプトを <script language=javascript> window.onload=function(){ date = new Date(); year = date.getYear(); month = date.getMonth()+1; day = date.getDate(); var o=document.forms["123"].elements["abc"].options for (var i=0;i<o.length;i++){ if(o[i].value==year+"abc"){ o[i].selected=true; break; } } var o=document.forms["123"].elements["def"].options for (var i=0;i<o.length;i++){ if(o[i].value==month+"def"){ o[i].selected=true; break; } } var o=document.forms["123"].elements["ghi"].options for (var i=0;i<o.length;i++){ if(o[i].value==day+"ghi"){ o[i].selected=true; break; } } } </script> としてもダメなのでしょうか? 手持ちのフォームに移行する際の注意点をご教授いただけないでしょうか? よろしくお願い致します。

関連するQ&A

  • IE9でプルダウンメニューが使えない

    IE8では機能していたプルダウンメニューが、IE9で見るとメニューが開いた状態で表示されるようになりました。このプルダウンメニューのソースは、ほかのサイトからコピーいして使用していたものです。 どなたかIE9で使えるプルダウンメニューのソース、またはそれに代わる方法が分かる方がいらっしゃいましたら、教えて下さい。

    • 締切済み
    • CSS
  • 時間を取得してプルダウンに反映させたい

    「14時50分」の「14」と「50」がプルダウンで選択できるフォームで、ページをロードするときの時間を自動表示(選択)させたいのです。「分」は10分刻みがいいのですが、1分刻みでも構いません。 時間を取得する方法はわかるのですが、対応するプルダウンメニューに「selected」属性る方法がわかりません。 どのようにしたらよいのか、わかるかた教えてください。

  • OSXのIE5.1で、プルダウンが表示されない?

    MacOSX(10.1系)で、IE5.1を使っています。 時々、アンケートフォームに入力しようとすると、 プルダウンメニューが何も表示されないときがあります。 (他のコンテンツでは表示されているものもある) HTMLソースを見ると、ちゃんと書いてあるのですが。。 また、同じWebページをWindowsのIE6.0で見ると、ちゃんとプルダウンは表示されます。 ちなみに、CGI等への送信はうまくいくみたいです。 これって、MacのIE5.1固有の不具合なのでしょうか? Microsoftのmactopiaを見てみても、アナウンスをしていないようなのですが… 解消方法など、ご存知でしたら、教えていただけませんでしょうか? よろしくお願いします。

    • 締切済み
    • Mac
  • 作成したプルダウンメニューバーがIEでスムースに動きません。

    作成したプルダウンメニューバーがIEでスムースに動きません。 DW cs3 を使用して、HPを作成しています。OSはWinXPです。 Spryのメニューバーを使用して、プルダウンメニューバーを作成し、FireFox と IE8上で使用確認をした際、FireFoxではカラーが出ず、IEでは 「セキュリティ保護のため、このコンピューターにアクセスする可能性のあるスクリプトやActiveXコントロールを実行しないよう、Internet Explpre で制限されています。オプションを表示するには、ここをクリックしてください。」と表示します。 クリックして「ブロックされているコンテンツを許可」を選択すると、FireFoxと同じ挙動で動くようになります。 IE上でカラーが表示し、このようなコメントが出なくてもスムースにプルダウンメニューバーを動かすにはどのようにすればよいでしょうか? HP作成はあまり経験が無く、困っています。どうかよろしくご教授ください。 説明不足であれば再度コードを添付するようにいたします。ご指示ください。 よろしくお願いいたします。

  • 年月日のプルダウンメニューで教えてください。

    php初心者です。 セレクトメニューで悩んでいます。 以下のようなフォームを作っています。 プルダウンメニューで2007年1月1日を選んだ時 結果を20070101にし、SELECTDATEのaaaに持たせたいのですがどうすればいいのかわかりません。 どなたか教えてください。 <form name="etc" action="etc"> <?php echo "<select name=\"YEAR\">"; for ($i = 0; $i < 2; $i++) { echo "<option>".date("Y", strtotime("+$i year")); } echo "</select>年"; echo "<select name=\"MONTH\">"; (中略) echo "<select name=\"DAY\">"; (中略) ?> <input type="hidden" name="SELECTDATE" value="aaa" /> </form>

    • 締切済み
    • PHP
  • VBAでプルダウンの表示

    VBAの勉強をしております。 ブックを開いたときに、プルダウンのユーザーフォームが表示され、 そしてプルダウンにはブックを開いた日から1年間の年月日が表示される処理を作りたいと思っております。 処理としては (1)ユーザーフォームがブックを開かれると表示される (2)ブックを開いたときにそのときの日付を取得する (3)その日付から1年間をプルダウンに表示する  (例)例えば質問日の7/22にブックを開いたとすると     「201507」「201508」「201509」「201510」・・・のように年と月を表示するようにしたいです。 そこで現在この処理を行うのにブックを開いたときにユーザーフォームを表示するようにはできたのですが、プルダウンで1年間を表示するにはどうしたらいいのでしょうか。 1、シートに「201507」~「201712」ぐらいまでをA列に記載し、 2、ブックを開いた日付を取得し、その日付を「YYYYMM」の形にし、 3、シートのA列を上から順に検索し、同じ数値のが見つかるまで検索する 4、見つかったら、そこの行数を読みとり、そこから12個分下にある数値を読み取り 5、それをプルダウンに表示させる という処理の流れを考えたのですが、実際にどうVBEに書いたらいいかわかりません。

  • プルダウンメニューの作成方法

    以下のようなテーブル構造で、「あ」の部分にはFireworksで作成した、プルダウン型のメニューバー(JavaScriptで動作)が入り、「い」の部分にはFlashコンテンツが入っています。 「あ」のプルダウンは上から下に向かって「い」のFlashコンテンツ上に表示させたいのですが、これはできないのでしょうか? ┌───────┐ │   あ      │ ├───────┤ │   い      │ │          │ └───────┘ 「い」の部分にFlashではなく、通常のイメージ(GIFなど)を入れている時は、問題なくプルダウンできていたのですが、Flashのコンテンツに変えると、プルダウンメニューが表示されません。 原因・もしくは解決法をお教え頂けると幸いです。

  • プルダウンメニューが隠れてしまう

    WIN7、IE10でプルダウンメニューが画像(チャート)の下に隠れて一部しか見えません。 隠れている部分は見えませんがクリックできるようです。別のPC(同じくWIN7、IE10)では問題ありません。何が悪いのでしょうか。Flash Playerは再インストールしてみましたが変わりません。よろしくお願いします。

  • エクセル 生年月日(プルダウン)→年齢表示

    エクセルの操作についてお知恵を貸していただきたく、 よろしくお願いします。 シート1で和暦の生年月日をプルダウン式で選択し、 シート2でシート1で選択した生年月日の表示、同時に横のセルに 年齢を表示させたいと考えています。 試しに、「データの入力規則」より以下のリストを作成しました。 (1)A1に「明治、大正、昭和、平成」の和暦リスト (2)B1に「1~63」の年リスト (3)D1に「1~12」の月リスト (4)F1に「1~31」の日リスト が、シート2に生年月日を表示させることはできても、 年齢計算が出来ません。 (和暦・年・月・日を別々のセルに表示させる形になり、 生年月日として認識されないため) フォームコントロールのコンボボックスなどを使えば 実現できるのでしょうか? 何か良い方法があればご教授いただきたいです。 もしvbaなどで実現可能な場合は、マクロの式など教えて いただけると助かります。

  • FireFoxで右クリック時のプルダウンメニューに,IEで開くを追加するには?

    FireFoxをメインにIEを使っていますが、FFでリンクを右クリックした時のプルダウンメニューに「IEで開く」を追加したいのですが、どうすればできますか?教えてください。また、IEでも「FFで開く」を追加したいのですが、FFと違うようでしたらこちらもお願いします。

専門家に質問してみよう