テキストエリアボックスを作成しようとしていますが、その上にある選択フィールドの値が入力されています。複数の選択フィールドの値を配列に格納し、オプションの変更時に配列を更新する方法はありますか?
オプションが異なる3つの選択フィールドがあります。オプションが選択されると、その値はテキストエリアボックスに挿入されます。私はこの部分を並べ替えました:
$("select[name='vehicle_part[]']").change(function() {
var optionSelected = $("select[name='vehicle_part[]'] option:selected").html();
$("#textareaObservation").html($('#textareaObservation').text() + optionSelected+ " ");
});
$("select[name='damage_type[]']").change(function() {
var optionSelected = $("select[name='damage_type[]'] option:selected").html();
$("#textareaObservation").html($('#textareaObservation').text() + optionSelected+ " ");
});
$("select[name='part_status[]']").change(function() {
var optionSelected = $("select[name='part_status[]'] option:selected").html();
$("#textareaObservation").html($('#textareaObservation').text() + optionSelected+ " ");
});
しかし、私はオプションが変更されたときはいつでも、テキストエリア内の単語を変更する必要があります。だから、例えば: は、select第一です:test1の、第二選択:test2は、第三選択:test3に テキストエリア:TEST1 TEST2 TEST3
TEST4するTEST2を変更した後、テキストエリアは次のようになります。test1のTEST4 test3に
選択フィールドリピータにあります。つまり、3つまたは10つの選択フィールドがある可能性があるため、選択フィールドの数に関係なく、動的に作業する必要があります。
私はこれを行う最善の方法は、すべての単語を配列に入れて、選択変更時に配列値を変更することです。どのように私はこれを行うことができます上の任意のアイデア?
ありがとうございました。
私はそれを考え出したラーフル・パテルのおかげで:
$("select.superSelect").change(function() {
var selectedOptions = [];
$("select.superSelect option:selected").each(function(){
var value = $(this).text();
if($.trim(value)){
selectedOptions.push(value.trim());
}
});
$("#textareaObservation").html(selectedOptions.join(' '));
});
は、すべてのフィールドに同じクラスを追加しました。魅力的な作品!
どうかの選択フィールドは、異なる名前を持っていますか?元の投稿で私の更新されたコードをチェックしてください。 – butaminas
私はコンピュータにいないので、後でコードを更新し、更新します。 –
自分自身を考え出した。すべてのフィールドに同じクラスを追加し、val()の代わりにtext()を使用しました(私は異なる値を持っています)。私の元の投稿に実用的な解決策を加えました。 解決策があれば教えてください。 – butaminas