我在下面有一个函数,当单击“添加”按钮时,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;
}
下面是单个textarea的代码,它是加号按钮:
<form id="QandA" action="<?php echo htmlentities($action); ?>" method="post">
<div id="detailsBlock">
<table id="question">
<tr>
<td rowspan="3">Question:</td>
<td rowspan="3">
<textarea class="questionTextArea" id="mainTextarea" rows="5" cols="40" name="questionText"></textarea>
</td>
</tr>
</table>
<table id="plus" align="center">
<tr>
<th>
<a onclick="return plusbutton();">
<img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" id="mainPlusbutton" name="plusbuttonrow"/>
</a>
<span id="plussignmsg">(Click Plus Sign to look <br/> up Previous Questions)</span>
</th>
</tr>
</table>
</div>
</form>
问题是,当在一个附加的textareas中添加内容时,else语句不起作用。我想要的是,如果用户单击其中一个附加文本区域旁边的加号按钮并通过单击“添加”按钮添加内容,则与单击的加号按钮属于同一行的文本区域将添加内容。为了做到这一点,我需要改变什么?
下面是代码,显示附加的textareas和加号按钮:
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);
}
您可以查看应用here。请按照步骤使用该应用程序:
如果您在顶部textarea(水平线上方的那个)中执行了步骤,那么它确实有效,它只对您刚添加的textarea不起作用
答案 0 :(得分:0)
您没有传递plusbutton()
函数期望的元素作为参数,这就是函数无法找到兄弟元素来获取其内容的原因。尝试:
<a onclick='return plusbutton(this);'>