-PR-
解決済み

複数選択のリストボックスのvalueを表示

  • 困ってます
  • 質問No.73481
  • 閲覧数286
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 47% (767/1609)

現在下記のようにしてリストボックスの値をフォームボタンに表示しています。複数選択のリストボックスに変更した場合の書き方のアドバイスをいただきたいのですが。

function Select( parts ){
var i,Msg;
for (i = 0; i < parts.options.length; i++){if ( parts.options[i].selected ){
Msg = parts.options[i].value + "さん宛送信";
}
}
document.main.Submit.value = Msg
}
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1

複数選択されたときにどのように表示させたいのかが不明なので、お答えしづらいのですが、単純に選択した項目の値を並べて良いのであれば、例えば以下のサンプルを考えられます。
function Select( parts ){
var i,Msg;
Msg = "" ;
for (i = 0; i < parts.options.length; i++){
if ( parts.options[i].selected )
{
Msg += parts.options[i].value + "さん、" ;
}
}
Msg += "宛に送信";
document.main.Submit.value = Msg ;
}

ここでのポイントは、for文の手前で、Msgを空文字列で確実に初期化すること、と、複合代入演算子+=を使うことです。
「+=」は、「A += B」と「 A = A + B」の略記と思ってください。すなわち、変数Aにすでに格納されている文字列の後ろにBが連結された値がAに格納される訳です。ただし、「A+=」が実行される段階でAの値が不定の場合、その挙動は不明ので、「A+=」(があるfor文)の手前で初期化を行っておきます。

ただ、これでは、たくさん選択するとSubmitボタンが横に大きくなってしまいますし、かといって、改行を挟んで連結させたところでボタン上の文字を複数行になるとは思えませんし。。。

中途半端な回答ですみません。
お礼コメント
s-holmes

お礼率 47% (767/1609)

回答ありがとうございました。解説していただいた内容は初心者にとってはわからない部分もあるのですが、やりたい内容はこれでまったくOKでした。複数と言っても最大でも3人ほどの想定のフォームですので、これで使用させていただきます。

#複合代入演算子というのを新たに学びました。
投稿日時 - 2001-05-09 11:56:20
関連するQ&A
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ