「追加」ボタンをクリックしたときに単一のテキストエリアにコンテンツを追加する場合に if ステートメントが機能する以下の関数があります。
function addwindow(questionText) {
if(window.console) console.log();
if($(plusbutton_clicked).attr('id')=='mainPlusbutton') {
$('#mainTextarea').val(questionText);
} else {
$(plusbutton_clicked).parent('td').next('td.question').find('textarea.textAreaQuestion').val(questionText);
}
$.modal.close();
return false;
}
問題は、追加されたテキストエリアの 1 つにコンテンツを追加するときに、else ステートメントが機能しないことです。私が欲しいのは、ユーザーがプラスボタンをクリックし、「追加」ボタンをクリックしてコンテンツを追加すると、クリックされたプラスボタンと同じ行に属するテキストエリアがコンテンツを追加することです。これを行うには、何を変更する必要がありますか?
以下は、追加されたテキストエリアとプラスボタンを表示するコードです。
var plusbutton_clicked;
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $plusrow = $("<td class='plusrow'></td>");
var $question = $("<td class='question'></td>");
$('.questionTextArea').each( function() {
var $this = $(this);
var $questionText = $("<textarea class='textAreaQuestion'></textarea>").attr('name',$this.attr('name')+"[]")
.attr('value',$this.val());
$question.append($questionText);
});
$('.plusimage').each( function() {
var $this = $(this);
var $plusimagerow = $("<a onclick='return plusbutton();'><img src='Images/plussign.jpg' width='30' height='30' alt='Look Up Previous Question' class='imageplus'/></a>").attr('name',$this.attr('name')+"[]")
.attr('value',$this.val());
$plusrow.append($plusimagerow);
});
$tr.append($plusrow);
$tr.append($question);
$tbody.append($tr);
}
以下は、各行に「QuestionContent」ボタンと「追加」ボタンを表示する php コードです。ユーザーが「追加」ボタンをクリックすると、上部の単一のテキストエリアに「QuestionContent」が追加されますが、追加された複数のテキストエリアには追加されません。
<?php
$output = "";
while ($questionrow = mysql_fetch_assoc($questionresult)) {
$output .= "
<table>
<tr>
<td class='addtd'><button type='button' class='add' onclick='parent.addwindow();'>Add</button></td>
</tr>";
}
$output .= " </table>";
echo $output;
?>
ここでアプリケーションを表示できます。アプリケーションを使用するには、次の手順に従ってください。
- 「質問を追加」ボタンをクリックすると、新しい行にテキストエリアが追加されます。
- 追加したテーブル行内の「グリーン プラス」ボタンをクリックすると、モーダル ウィンドウが表示されます。
- モーダル ウィンドウに検索バーが表示されます。検索バーに「AAA」と入力し、[検索] ボタンをクリックします。
- 検索結果が表示されるので、「追加」ボタンをクリックして行を追加します。モーダルウィンドウが閉じていることがわかりますが、緑色のプラスボタンをクリックした行内のテキストエリアに「質問」フィールドのコンテンツが追加されていません
上部のテキストエリア (水平線の上にあるもの) で手順を実行した場合は機能しますが、追加したばかりのテキストエリアでは機能しません。