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

いつもお世話になります。

javascriptにて、ページを開くと、
セレクトボックスの値が、初期値になるようにしようと思ってますがうまくいきません。

詳しく書きますと、担当者一覧がセレクトボックスに入っていて、
そのページを開くと、ログインしている担当者名が選ばれた状態にしたいのです。
※たとえば、「山本太郎」でログインしているとすると、ページを開くとセレクトボックスが、
 「山本太郎」が選ばれている状態にしたいのです。


いろいろ調べて、自分なりにソースを書いてみましたが、うまくいきません。


以下ソースになります。


<SCRIPT LANGUAGE="JavaScript" >
var tantou = "<%=Rs("作業担当者")%>"
var element = document.getElementById("sagyounm");
for (var i=0; i<element.options.length;i++) {
if(element.options[i] === 'tantou'){
element.options[i].selected = true;
break;
};
};
</SCRIPT>

Rs("作業担当者")は、ログインした担当者名です。
たぶん上記のソースはセレクトが選ばれている値を取得してるだけだと思います。


***********************************************
以下は、セレクト部分です。


<select name="sagyoutantou" id="sagyounm" required>
<option value=""/>---作業担当者選択---</option>
<option value="山本 太郎"/>山本 太郎</option>
<option value="山下 清"/>山下 清</option>
<option value="岡本 次郎"/>岡本 次郎</option>




どうにか、初期状態から担当者が選ばれている状態にできないでしょうか。
お忙しいとは思いますが、
おわかりの方いらっしゃいましたら、
どうかご教授お願いします。

A 回答 (2件)

3点修正が必要


(1)load後の処理になるのでwindow.onloadで処理する
(2)element.options[i]ではなくelement.options[i].value
(3) 'tantou'ではなくtantou

ざっと、こんな感じ
<script>
window.onload=function(){
var tantou = "山本 太郎";
var element = document.getElementById("sagyounm");
for (var i=0; i<element.options.length;i++) {
if(element.options[i].value === tantou){
element.options[i].selected = true;
break;
};
};
}
</script>
<select name="sagyoutantou" id="sagyounm" required>
<option value=""/>---作業担当者選択---</option>
<option value="山本 太郎"/>山本 太郎</option>
<option value="山下 清"/>山下 清</option>
<option value="岡本 次郎"/>岡本 次郎</option>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘どおり修正しましたところ、
問題なく動作いたしました。
ほんとうにありがとうございました。

お礼日時:2014/07/08 18:05

よくわかりませんが…




>if(element.options[i] === 'tantou'){ ~~
だと'tanntou'という文字列と比較してしまっているので、多分、一致することはないでしょう。

変数tanntouの内容と比較するのでしょうから、
 if(element.options[i] === tantou){ ~~
とすればうまくいくかも…


あと、質問文からはわかりませんが、DOM構築後にスクリプトを実行するようになっていますよね?


ところで、
>var tantou = "<%=Rs("作業担当者")%>"
って、サーバーサイドで処理しているのでしょうから、わざわざクライアントサイドで選択する処理をしなくても、出力するときに担当者をselectedにしておくとか、あるいはセレクトタグなどでなく担当者は固定にしてしまうとかでもよさそうに思いますが…
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
まだまだ初心者なので、「''」をつけるのかどうかわかっておりませんでした。

サーバーサイドとクライアントの処理がまだよくわかってませんので、中々難しいです。

お礼日時:2014/07/08 18:07

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