アプリ版:「スタンプのみでお礼する」機能のリリースについて

全くもって原因がわからず、行き詰まっています。
どなたか助けてください。宜しくお願いします。

<script>
window.onload=function(){
var now=new Date();
var nowDay=now.getDate();
var objD=document.FRM.selD;
for(i=0; i<31; i++){
d=i+1;
objD.options[i] = new Option(d+"日", d);
if(d==nowDay){
objD.options[i].selected=true;
}
}
}
</script>
<form name="FRM">
<select name="selD"></select>
</form>

A 回答 (2件)

こんにちは。



システム日付が選択されていればOKってことですよね。
例えば本日(2013/04/22)であれば22日が選択される。

IE8,Firefox20,chrome26では22日と表示されています。
    • good
    • 0
この回答へのお礼

こんにちは。確認していただいてありがとうございます。

たしかに意図した通り問題なく表示も動作もするので良いんですが、
他スクリプトとの連動から、今後エラーの芽になりそうな箇所を極力排除したいので
もうしばらく試行錯誤して原因や解決策を探ってみます。
お時間を割いていただいてありがとうございます。

お礼日時:2013/04/23 21:13

オブジェクト HTMLOptionElement のプロパティ selected に


値 true を設定しても駄目な環境があります。
すべての環境で動かす場合は、値 "selected" を指定するとよいでしょう。

objD.options[i].selected=true;

objD.options[i].selected="selected";

たしかに現在のDOMの定義では boolean 型なので true を入れたいところではありますが、
かつて XHTML を策定するときに決定された方針が
「HTML で値を指定しない属性は、属性名と同じ値を設定すること」
だったので、古い実装では true を除外する現象が起きます。携帯電話とか。

余談ですが、このケースなら window.Option 関数の第四引数で true/false を指定したほうが簡単だと思います。
    • good
    • 0
この回答へのお礼

こんにちは。回答ありがとうございます。

> objD.options[i].selected="selected";
でもダメでしたが、
スクリプトには問題がないようなので、もう少し自分なりに探ってみます。
XHTML策定や第4引数など貴重なアドバイスまでいただいてありがとうございます。

お礼日時:2013/04/23 21:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!