1

あなたの助けが必要です。

以下の関数を使用して、選択ボックスの内容を変換し、それらを 1 つの長い文字列に変換します。

問題は、関数が実行されると、最初にカンマがあることです。

文字列の先頭にあるコンマをトリム/ドロップできるように、既存の関数を変更するにはどうすればよいですか

initial result: ,A,B,C,D,E,F

expected end result: A,B,C,D,E,F

function select2var(select) {

    var x = document.getElementById(select).options

    var values = []

    for (var i=0; i < x.length; i++) {
        values.push(x[i].value);
    }
    return values.join(",");
}

function test() {

document.getElementById('box').value = select2var('alphabet')

}

HTML マークアップ:

<select id="alphabet">
    <option value=""></option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    <option value="E">E</option>
    <option value="F">F</option>
</select>
4

2 に答える 2

8

空の値を追加しないでください:

if (x[i].value.length) {
   values.push(x[i].value)
}
于 2013-10-01T15:32:45.750 に答える
0

空の値を追加することはできません。または、複数の空の値がある場合は、次を使用できますfilter

// values = ['','A','B','','','C',...]

values = values.filter( function(v) {
  // return 'false' when v is a false-coercing value, like the empty string
  return !!v;
});

// values = ['A','B','C',...]

または短いバージョン(組み込みBoolean関数を利用)

values = values.filter( Boolean );
于 2013-10-01T15:34:23.687 に答える