0

我在下面有一个函数,当单击“添加”按钮时将内容添加到单个文本区域时,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;
}

下面是单个文本区域的代码,它是加号按钮:

<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>

问题是在下面附加的文本区域之一中添加内容时,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);                     

}

你可以在这里查看申请。请按照以下步骤使用该应用程序:

  1. 单击“添加问题”按钮,然后将在新行中添加一个文本区域。
  2. 单击刚刚添加的表格行中的“绿色加号”按钮,将出现一个模式窗口。
  3. 在模态窗口中显示一个搜索栏,在搜索栏中输入“AAA”并单击“搜索”按钮
  4. 搜索结果将出现,单击“添加”按钮添加一行。您会发现模态窗口已关闭,但“问题”字段中的内容未添加到您单击绿色加号按钮的行内的文本区域中

如果您在顶部 textarea (水平线上方的那个)中执行了这些步骤,那么它确实有效,但它不适用于您刚刚添加的 textarea

4

1 回答 1

0

您没有传递plusbutton()函数期望作为参数的元素,这就是函数找不到兄弟元素来获取其内容的原因。尝试:

<a onclick='return plusbutton(this);'>
于 2012-06-03T17:24:05.627 回答