• 締切済み

JSの select option

JS初心者です、プルダウンメニューを検索で探し 何とかフォームに送っています。 --------- 選択 6月26日 6月27日 6月28日 6月29日 6月30日 7月1日 ---------- 1)、選択と6月26日の間に「なし」を入れたいのですが可能ですか? 可能な場合、ユーザーが未選択の場合は、 現在表示していない、value=""になるところをvalue="なし"に自動で「なし」になって欲しいのです・・・ ※(「なし」も選択できるし、選択しない場合も「なし」になって欲しい。) 2)、IEでたまに入力フォームに戻るとエラーが出ます。 (Fxでは出ません。このJSをつけてから出ます)内容は ライン:25 文字:1 エラー:オブジェクトでサポートされていないプロパティまたはメゾットです。 コード:0 URL:https://・・・ その時は、プルダウンの最上部の「選択」しか無くなって(月日部分が無い)しまうのです・・・(T_T) 1)、2)片方だけでも回答ヨロシクお願いします。 ------------------------------------------------- <select id="○○" name=xxx><option value="$in{'day'}" selected>選択</option></select> ---↑ html ---↓ 外部.jsの一部 ---- x_list=1 for(i=start_date;i<=end_date;i++){ x_date=new Date() x_date.setTime(x_date.getTime()+(i*24*3600*1000)); x_yy=x_date.getYear(); x_mm=x_date.getMonth()+1; x_dd=x_date.getDate(); if(x_yy<2000){x_yy+=1900;} s_obj.options[x_list]=new Option(x_mm+"月"+x_dd+"日",x_yy+"/"+x_mm+"/"+x_dd); x_list++; }

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

#1です。 部分的な事ならなんとかなるかと思ったけど、 CGIのソースはもちろんどんな機能のものかもわからないし、 (やりたい事もその対処方法も)やっぱりよくわからないです。降参です。 >cgiのエラーライン:25は、headのcssで以前からあって問題ないんはず エラーラインはJavascriptが書かれている行を指します。(Javascriptエラーですから) エラーが出ている状態でソース表示をして行を特定してますか? (Javascriptが外部ファイルである場合はその外部ファイルの行番号になります。)

takumana20
質問者

お礼

ありがとうございました。 先のお礼欄の私の方法もダメでしたww 色々手直しや試作をしてみましたが無理です・・・ >エラーライン CGIソースを見てました ┐(´ー`)┌ 確認してみます。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

わかる範囲で。 Javascript部分 x_list=1 → x_list=2 HTML部分 <select id="○○" name=xxx><option value="$in{'day'}" selected>選択</option></select> ↓ <select id="○○" name=xxx> <option value="$in{'day'}">選択</option>←selectedを削除 <option value="なし" selected>なし</option>←追加 </select> IEの問題・・・ URLがファイルを、行数が位置を エラーメッセージで示しています。 そこに直接の原因があるのでしょう。 根本的な原因を突き止めるためにはもっと全体がわからないとどうしようもないけど。

takumana20
質問者

お礼

steel_grayさんお回答を参考に色々やってる途中経過です。 Javascript部分 x_list=1 → x_list=2 <option value="なし" selected>選択</option> <option value="なし">なし</option> <option value="$in{'day'}" selected></option> でなんとか良くなったかもしれないのですが、 画面で戻ると二択になったりします(T_T)その時の表示画面のソースです 初心者ながらクッキーのせいかなとも思ったり・・・ <option value="なし" selected>選択</option> <option value="なし">なし</option> <option value="なし" selected></option> ------------------------------------------------ 下記が.js部分です。丸写しなんですけどダメなトコロありますか?お願いします。 x_refresh=1; //更新(分) x_flg=0; refresh_date(); function refresh_date(){ if(x_flg){ mk_date(); setTimeout("refresh_date()",x_refresh*1000*60) }else{ if(s_obj=document.getElementById("delivery_date")){ mk_date(); x_flg=1; setTimeout("refresh_date()",x_refresh*1000*60); }else{ setTimeout("refresh_date()",100); } } } function mk_date(){ if(s_obj.options[s_obj.selectedIndex].value==""){ start_date=3 ;//から end_date=14 ;//まで //初期化 for (i=s_obj.options.length;i>1;i--){ s_obj.options[i]=null; } //リスト追加 x_list=2 for(i=start_date;i<=end_date;i++){ x_date=new Date(); x_date.setTime(x_date.getTime()+(i*24*3600*1000)); x_yy=x_date.getYear(); x_mm=x_date.getMonth()+1; x_dd=x_date.getDate(); if(x_yy<2000){x_yy+=1900;} s_obj.options[x_list]=new Option(x_mm+"月"+x_dd+"日",x_mm+"月"+x_dd+"日"); x_list++; } } }

takumana20
質問者

補足

月日が無くなって二択になってしまいました・・・(T_T) ----- 選択 なし ----- 「選択」を選んだら「なし」になる部分は良くなりましたが 最初の表示を「選択」にしたいのです・・・結果→「なし」にしたいのです。 何かわかればお願いします! また、cgiのエラーライン:25は、headのcssで以前からあって問題ないんはずなんですが(T_T)

関連するQ&A

  • selectのoptionを操作する

    A、Bという2つのプルダウンメニューがあります。 Aにはaa、bb、ccという項目があらかじめ固定値で入っています。 Bは初期状態ではなにも表示されません。 Aのメニューからaaを選ぶと、Bにdd、eeという項目が表示されます。 Aのメニューからbb、ccを選んだ時はBのプルダウンメニューには何も表示されません。 Aからaaが選ばれたか判定するところまではできたのですが、Bのプルダウンメニューにdd、eeを表示させる方法がわかりません。 どのようにすればうまくいくでしょうか? HEAD部>> function GetMenu() { var index = tstFrm.menuA.selectedIndex; var str = tstFrm.menuA.options[index].value; if (str == "aa") { /************************************************/ /ここがわかりません /************************************************/ } } BODY部>> <form name="tstFrm" onChange="GetMenu()"> <select name="menuA"> <option value="aa">aa <option value="bb">bb <option value="cc">cc </select> <select name="menuB"> /************************************************/ /ここもわかりません /************************************************/ </select> menuAのvalueがaaの時に、menuBが <option value="dd">dd <option value="ee">ee menuAのvalueがbbまたはccの時に、menuBが <option value=""> となるようにしたいのです。 アドバイスお願い致します。 わかりにくくてすみません。

  • プルダウンのoptionの表示・非表示はできますか?

    JavaScriptを使ってプルダウン操作をしております。 一つ目のプルダウンで選択したあと2つ目のプルダウンのoptionの部分だけ表示・非表示をしたいのです。そんなことはできるのでしょうか? 下のソースで説明しますが、一つ目のリストで「あいうえお」を選択した時点で2つ目の選択リストの「ひらがな1」と「ひらがな2」だけを選択できるようにしたいのです。「カタカナ1」「カタカナ2」は非表示もしくは選択不可にできればいいのですが。 一つ目のプルダウンリスト <select name="formtype" onchange="form_indicate();"> <option value="AAA">あいうえお <option value="BBB">アイウエオ </select> 二つ目のプルダウンリスト <select name="formtype2"> <option value="aaa">ひらがな1 <option value="bbb">ひらがな2 <option value="ccc">カタカナ1 <option value="ddd">カタカナ2 </select>

  • プルダウンメニュー

     こんばんは。 日時をプルダウンメニューで選択するのですが、 月が変わると、内容も変わるようにしたいと思っています。JavaScriptで、出来ると聞いたのですが、 やり方が解りません。 このように書いてみたのですが、 画面には何も表示されません。 助けてください。 <SCRIPT LANGUAGE = "JavaScript"> <FORM NAME="form1" METHOD="post"> if (mm = 2){ document.write("<SELECT NAME="dd1" onChange="document.form1.dd.value=dd1.options[d d1.selectedIndex].value"> <OPTION VALUE="00"> <OPTION VALUE="16">16 <OPTION VALUE="17">17 <OPTION VALUE="18">18 <OPTION VALUE="19">19 <OPTION VALUE="20">20 <OPTION VALUE="21">21 <OPTION VALUE="22">22 <OPTION VALUE="23">23 <OPTION VALUE="24">24 <OPTION VALUE="25">25 <OPTION VALUE="26">26 <OPTION VALUE="27">27 <OPTION VALUE="28">28 </SELECT>日"); } if ((mm = 4) || (mm = 6) || (mm = 9) || (mm = 11)){ document.write("<SELECT NAME="dd1" onChange="document.form1.dd.value=dd1.options[d d1.selectedIndex].value"> <OPTION VALUE="00"> <OPTION VALUE="16">16 <OPTION VALUE="17">17 <OPTION VALUE="18">18 <OPTION VALUE="19">19 <OPTION VALUE="20">20 <OPTION VALUE="21">21 <OPTION VALUE="22">22 <OPTION VALUE="23">23 <OPTION VALUE="24">24 <OPTION VALUE="25">25 <OPTION VALUE="26">26 <OPTION VALUE="27">27 <OPTION VALUE="28">28 <OPTION VALUE="29">29 <OPTION VALUE="30">30 </SELECT>日"); } else{入らないので省きます。 </FORM> </SCRIPT>

  • 他のシステムからExcelに日付を貼り付ける

    こんばんは。 過去の質問を見ていたのですが、同じような質問を見つけられなかったのでどなたか知ってたら教えてください。 タイトルにあるように他のシステム(Aとします)からExcelに日付をコピー・ペーストしたいのですが、AのフォーマットがDD/MM/YYになっています。 PCの日付の設定自体をRegional OptionsでDD/MM/YYに変えてしまえば話は早いのですが、それをMM/DD/YYにしたままExcelにペーストすると日にちが12日より大きいものはDate型として認識しません。 例えば10/12/03はDateとして認識されますが2003年10月12日として認識されます。(本当は2003年12月10日なんですが。)又、15/12/03(2003年12月15日)はDateではなくGeneralとして認識されます。右クリックformat Cellで日付型に変換しても、CustomizeでDD/MM/YYとしてもやはり日付として認識しません。どうやったらExcelに日付として表示させることができますか?

  • <select> selectedについて

    ある動的検索結果用ページから下記のファイルが、読み込まれその結果ページ上部に、 地域で絞り込むセレクトプルダウンが表示されます。 その結果ページのセレクトプルダウンの地域を再度選択しまして、結果が返された時に、 選択した地域名をセレクトプルダウンに表示させたいのですが、上手く動かず地域で絞るが 毎回表示されます。 <サンプル> <script type="text/javascript"><!-- function navi(value){ navi_option = document.getElementById("cityId").getElementsByTagName('option'); for(i = 0; i < navi_option.length; i++){ if(navi_option[i].value == value){ navi_option[i].selected = true; document.searchForm.cityId.options[i].selected= true; break; } } } // --></script> <select name="cityId" id="cityId" onClick="navi(value);"> <option value="0" >- 地域で絞る -</option> <option value="169">池袋東口</option> <option value="170">池袋西口</option> <option value="85" >大塚・巣鴨</option> <option value="131">赤羽</option> <option value="164">田端・王子</option> ・ ・ ・ ・ ・ </select> -略- javascriptの部分をどのように実装すれば良いでしょうか? javascriptは、初心者なので、ご教授願えれば幸いです。 宜しくお願い致します。

  • 今日の日付を自動的にセレクトしたいのですが・・・。

    うまくできません。 どなたか助けていただけないでしょうか? よろしくおねがいします。 今のソースはこんな状態です。 onChange="setDate(this.form);"は4月の時に30日までとかにつかっています。 <!--最初に今日の日付を選択したい--> var date=new Date(); var year = date.getYear(); var year= (year< 2000) ? year+1900 : year; var mon=date.getMonth(); var day=date.getDate(); alert(mon); function setNow(form){ for(var i = 0;i<document.nanngatu.nanngatu.options.length;i++){ if(document.nanngatu.nanngatu.options[i].text==mon){ document.nanngatu.nanngatu.options.selectedIndex=i; break; } } } --間は省略-- <onLoad="setNow(this.form)" > <form name="nanngatu"> <select name="nanngatu" onChange="setDate(this.form);" > <option value="32">1</option> <option value="30">2</option> <option value="32">3</option> <option value="31">4</option> <option value="32">5</option> <option value="31">6</option> <option value="32">7</option> <option value="31">8</option> <option value="32">9</option> <option value="31">10</option> <option value="32">11</option> <option value="31">12</option> </select>月

  • <SELECT>内<OPTION>の内容を曜日で変えるには?

    <FORM name="BGM"> <SELECT name="change"> <OPTION selected>選曲♪</OPTION> <OPTION value="○○○.mid">曲1</OPTION> <OPTION value="○○○.mid">曲2</OPTION> <OPTION value="○○○.mid ">曲3</OPTION> <OPTION value="○○○.mid ">曲4</OPTION> </SELECT>  <INPUT onclick="bgm_change()" type="button"> </FORM> 今、このような形で、<SELECT>を使ってBGMを4曲から選べる機能を成功させています。 この、<SELECT>の<OPTION>のプルダウンの内容を、 曜日ごとで変えたいと思っています。 今日の曜日を取得するJavascriptは、 Function WhatDayWeek() と言う名の関数で、     Week = new Array(7); DATE = new Date(); thisweek = Week[DATE.getDay()]; 以上のように作っていますが、 このJavascriptと、<SELECT><OPTION>をくっ付ける(反映させる)にはどう記述すればよいでしょうか? 関数自体、この3行では足りないんでしょうか・・。 どなたかご教授下さい。

    • ベストアンサー
    • HTML
  • perl セレクトメニューを ↓の者です。

    前質で→ http://oshiete1.goo.ne.jp/qa4142221.html #print "<option value=\"$day1\">$day1"; で出来たのですがw dayの日範囲を多くするとかなり長くなってしまい(T_T) (初心者のくせに)foreachを使ってみようかと エスケープしたりダブルコーションにしたり色々やっても・・・ <option>に月日が表示されません(T_T) 基本的に間違っているのでしょうか・・・ お願いします。 *他にも変なところがあったら教えて下さい。 -------------------------------------- <select name=dd><option value="なし" selected> ↓ <option value="なし">指定なし EOM foreach (0 .. $#pl) { if ($in{'plan'} eq $_) { print "<option value=\"$_\">$pl[$_]\n"; } else { print "<option value=\"$_\">$pl[$_]\n"; } } print "</option></select>\n"; #-------------------------------------- ### ↑メイン.cgiです。↑ ### ↓ サブ.cgiです。↓ #-------------------------------------- # 時間 $time = time(); # 範囲日 $day1 = day0($time + (86400 * 2)); $day2 = day0($time + (86400 * 3)); $day3 = day0($time + (86400 * 4)); ############ 上下の行のday数が14日間位まで続く・・・ @pl = ('$day1', '$day2', '$day3'); # 日計算 sub day0{ my(@weekdayname) = ('日','月','火','水','木','金','土'); my $time = shift || time(); my $day0 = $time + (24 * 60 * 60); my ($yyyy, $mm, $dd, $w) = (localtime($day0))[5,4,3,6]; $yyyy += 1900; $mm += 1; return( sprintf('%4d/%2d/%2d(%s)', $yyyy, $mm, $dd, $weekdayname[$w]) ); }

    • ベストアンサー
    • Perl
  • UTF8でperlスクリプトを書くと年月日が表示しない

    UTF-8で下記スクリプトを書いて実行すると、 $yy年$mo月$dd日 にあたる部分が表示されず、($day)$hh:$mm:$ss の部分しか表示されません。 ------------------------------------ #!/usr/bin/perl use utf8; use Encode; &get_date(); print "Content-type: text/html\;charset=utf-8\n\n"; print encode('utf8',"$date"); exit; sub get_date { ($ss,$mm,$hh,$dd,$mo,$yy,$day)= localtime(time); $day = ("日","月","火","水","木","金","土")[$day]; $yy = $yy+1900; $mo++; if ( $mo < 10 ) { $mo = "0$mo"; } if ( $dd < 10 ) { $dd = "0$dd"; } if ( $hh < 10 ) { $hh = "0$hh"; } if ( $mm < 10 ) { $mm = "0$mm"; } if ( $ss < 10 ) { $ss = "0$ss"; } $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; } ------------------------------ EUCコードでスクリプトを書いてencodeなど不要な部分を変更した場合は$yy年$mo月$dd日の部分も表示されます。 また、上記  $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; の部分を下記のように変更すると表示されますが... -------------------------- $date = $yy; $date .="年"; $date .= $mo; $date .="月"; $date .= $dd; $date .="日"; $date .="($day)$hh:$mm:$ss"; -------------------------- なぜ一括してダブルクォートで囲むと表示されないのでしょうか? 今まではEUCでスクリプトを書いておりました。UTF8に翻弄されております... どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 地域言語オプションの日付形式を用いての日付編集方法

    コントロールパネルの地域と言語オプションから 地域オプションのカスタマイズ内の日付タブにある 短い形式を元に日付の編集を行おうとしています。 しかしこのまま短い形式をしようすると、 「年月日」の形式を取得してしまいます。 今回の用件では「年月」のみ必要なので「日」の形式を除外した形式で 日付の編集を行う必要があります。 ただしコントロールパネルから日付の形式が変更できる為、 各クライアントの端末毎に日付の形式が異なる為(※1) 単純に文字列の編集で「年月」を取得することが出来ず困っております。 ※1 クライアント毎の日付形式の例と行いたい変換後の形式の例 短い形式 → 変換後の形式 yyyy/MM/dd → yyyy/MM yy/M/d   → yy/M yy/MM/dd' ('ddd')' → yy/MM/ dd/MM/yyyy → dd/yyyy 開発言語は VisualStudio2008 C# で開発を行っています。 皆さんのお力をお貸しいただけないでしょうか。

専門家に質問してみよう