- 締切済み
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++; }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- steel_gray
- ベストアンサー率66% (1052/1578)
#1です。 部分的な事ならなんとかなるかと思ったけど、 CGIのソースはもちろんどんな機能のものかもわからないし、 (やりたい事もその対処方法も)やっぱりよくわからないです。降参です。 >cgiのエラーライン:25は、headのcssで以前からあって問題ないんはず エラーラインはJavascriptが書かれている行を指します。(Javascriptエラーですから) エラーが出ている状態でソース表示をして行を特定してますか? (Javascriptが外部ファイルである場合はその外部ファイルの行番号になります。)
- steel_gray
- ベストアンサー率66% (1052/1578)
わかる範囲で。 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がファイルを、行数が位置を エラーメッセージで示しています。 そこに直接の原因があるのでしょう。 根本的な原因を突き止めるためにはもっと全体がわからないとどうしようもないけど。
お礼
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++; } } }
補足
月日が無くなって二択になってしまいました・・・(T_T) ----- 選択 なし ----- 「選択」を選んだら「なし」になる部分は良くなりましたが 最初の表示を「選択」にしたいのです・・・結果→「なし」にしたいのです。 何かわかればお願いします! また、cgiのエラーライン:25は、headのcssで以前からあって問題ないんはずなんですが(T_T)
お礼
ありがとうございました。 先のお礼欄の私の方法もダメでしたww 色々手直しや試作をしてみましたが無理です・・・ >エラーライン CGIソースを見てました ┐(´ー`)┌ 確認してみます。