###前提・実現したいこと
・前提
POST送信用フォーム:Form
Formの中にある「詳細フィールド(textarea)」:Textarea
Formと同じ画面内にある別フォームModal:Modal
Modalの中身:ラジオボタン・text・セレクトリスト
・実現したいこと
Modalにて設定した項目・内容をTextareaに出力したい。
###わからないこと
出力処理のeachに入らず、出力されない
###該当のソースコード
function output() { // Textareaへの出力用配列 var output = []; // radioButton のラベルタイトル output['radioButton'] = radioButton.text() // 複数選択selectboxで選択されている値(text) var selectedText = []; $selected = $Field_2.find('#selected option:selected'); $selected.each(function () { selectedText.push($(this).text()); }); // 普通のtext output['string'] = string.text() // 出力箇所 $.each(output, function (key, text) { $('#textarea').append(key + ' : ' + text + "\n"); });
###試したこと
Modal内の各要素を配列化することはできている。
[追記]
・each直前のoutputの中身
output: Array[0]
radioButtn:"らじお"
length:0
selected:Array0
string:"てきすと"
###試したこと2
function output() { // Textareaへの出力用配列 var output = []; // radioButton のラベルタイトル output.push({'radioButton' : radioButton.text()} ); // 複数選択selectboxで選択されている値(text) var selectedText = []; $selected = $Field_2.find('#selected option:selected'); $selected.each(function () { selectedText.push($(this).text()); }); output.push({'selected' : selectedText}); // 普通のtext output.push({'string' : string.text()}); // 出力箇所 $.each(output, function (key, text) { $('#textarea').append(key + ' : ' + text + "\n"); });
・結果
出力はされているがキーが配列番号になってしまう。
0:[object Object]
1:[object Object]
2:[object Object]
3:[object Object]
###試したこと3
試したこと2 の最後のeach部分を以下のように修正。
var result = $('#textarea').val(); $.each(output, function (key, object) { $.each(object, function (title, text) { if (result[title] !== '') { result += (title + ':' + text + '\n'); } }) }); $('#textarea').val(result);
・結果
title : text
title : text
title : text
title : text
期待した結果にはなったが、もっとスマートな方法はありますでしょうか。
回答3件
あなたの回答
tips
プレビュー