Php else语句未将内容添加到textarea
我在下面有一个函数,当单击“添加”按钮将内容添加到单个文本区域时,if语句在该函数中起作用: 问题是else语句在添加一个附加文本区域内的内容时不起作用。我想要的是,如果用户单击加号按钮并通过单击“添加”按钮添加内容,则与单击的加号按钮位于同一行的文本区域将添加内容。要执行此操作,我需要更改什么 下面是显示附加的文本区域和加号按钮的代码:Php else语句未将内容添加到textarea,php,javascript,jquery,Php,Javascript,Jquery,我在下面有一个函数,当单击“添加”按钮将内容添加到单个文本区域时,if语句在该函数中起作用: 问题是else语句在添加一个附加文本区域内的内容时不起作用。我想要的是,如果用户单击加号按钮并通过单击“添加”按钮添加内容,则与单击的加号按钮位于同一行的文本区域将添加内容。要执行此操作,我需要更改什么 下面是显示附加的文本区域和加号按钮的代码: var plusbutton_clicked; function insertQuestion(form) { var $tbody = $(
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);
}
var plusbutton_单击;
函数插入问题(表格){
变量$tbody=$(“#qanadbl>tbody”);
var$tr=$(“”);
变量$plusrow=$(“”);
var$question=$(“”);
$('.questionTextArea')。每个(函数(){
var$this=$(this);
var$questionText=$(“”).attr('name',$this.attr('name')+“[]))
.attr('value',$this.val());
$question.append($questionText);
});
$('.plusimage')。每个(函数(){
var$this=$(this);
var$plusimagerow=$(“。请按照以下步骤使用该应用程序:
单击“添加问题”按钮,然后将在新行中添加文本区域
单击刚刚添加的表格行中的“绿色加号”按钮,将出现一个模式窗口
在模式窗口中,它显示一个搜索栏,在搜索栏中键入“AAA”并单击“搜索”按钮
搜索结果将显示,单击“添加”按钮添加一行。您将发现模式窗口已关闭,但“问题”字段的内容未添加到您单击绿色加号按钮的行的文本区域中
如果您在顶部textarea(水平线上方的区域)中执行了这些步骤,那么它确实有效,但对于您刚刚添加的textarea,它不起作用。您的一个错误:
$('.plusimage').live('click', function() {
plusbutton($(this));
});
您正在页面中使用jQuery 1.7,自从jQuery1.7
以来,.live
方法已被弃用。您应该改用.on
您还在生成的链接中触发plusbutton
功能:
<a value="" name="plusbuttonrow[]" onclick="return plusbutton();">
它不会将任何元素作为参数传递给您的plusbutton
函数,并存储在您所期望的全局变量plusbutton\u单击的
中。此时没有对单击的元素的引用,因此在addwindow
中使用单击的plusbutton\u
var时,它找不到任何元素行动
保持.on
方法或上面的onclick
调用,以防止函数被触发两次
可能还有其他错误(例如,您正在检查动态生成的元素不存在的id属性),但这是主要问题。另外,我想知道你是否没有完成这项工作的最后期限,这是我在过去三周内第十次看到这个问题。至少你取得了一些进展,恭喜。为什么要使用$(this.val()
和$(this.attr('value',/*something*/)
而不是此.value
?“value”的作用是,如果用户在单个文本区域中输入文本,然后单击“添加问题”“按钮,它将在添加的下一个文本区域中添加该文本。这与我在这里所做的完全不同,我没有在上面包含显示该文本的代码。如果没有“值”,则当用户单击“添加问题”时,它将始终显示空白文本区域”,即使在textarea中输入了文本我包含了应用程序的URL以便您可以自己查看我发现如果我将.live函数更改为.on,那么它根本不会向单个textarea添加任何内容,而在此之前,我需要.live()函数。我还尝试添加与上面相同的函数,但将其更改为.imageplus,以查看它是否适用于动态文本区域,但仍然无法更改$('.plusimage').live('click'
by$('.plusimage')。on('click'
将不会打开模式?没有多大意义,但无论如何,plusbutton()
被调用了两次,而
中的调用没有传递任何参数。请尝试删除链接“onclick
,并向其添加href=”#“
:var$plusimagrow=$(“
,如果您的.live
正在工作,当您单击图像并打开模式时,它将触发。检查是否有任何区别。如果我按照您所说的做,那么当我单击其中一行中的图像按钮时,它不会打开模式窗口。它只会打开属于顶部文本区域的图像按钮
$('.plusimage').live('click', function() {
plusbutton($(this));
});
<a value="" name="plusbuttonrow[]" onclick="return plusbutton();">