Javascript 获取由Ajax请求创建的文本区域的值
我在一个表(也是由ajax请求创建的)内创建了一个文本区域,该表位于一个不是由ajax请求创建的div内。我试图通过Jquery获取该文本区域的值,但它不起作用。问题是什么?任何帮助都将受到感谢Javascript 获取由Ajax请求创建的文本区域的值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在一个表(也是由ajax请求创建的)内创建了一个文本区域,该表位于一个不是由ajax请求创建的div内。我试图通过Jquery获取该文本区域的值,但它不起作用。问题是什么?任何帮助都将受到感谢 <tr> <td valign='middle' align='center'> <label id='feedbackLabel' for='feedbackText'>Feedback</label> </td&g
<tr>
<td valign='middle' align='center'>
<label id='feedbackLabel' for='feedbackText'>Feedback</label>
</td>
<td class='righttd' valign='middle' align='center'>
<textarea id='feedback'></textarea>
</td>
</tr>
$('#resultDiv').on("click", ".button", function(){
var feedBack = $('#feedback').val();
alert(feedBack);
});
反馈
$('#resultDiv')。在(“单击“,”按钮”,函数()上){
var feedBack=$('#feedBack').val();
警惕(反馈);
});
尝试将您的侦听器添加到文档
元素:
$(document).on('click', '#resultDiv .button', function(){
var formID = this.id;
var feedBack = $('#coordinatorFeedback').val();
alert(feedBack);
});
如果jQuery代码在最终呈现textarea HTML的ajax调用之前写入页面(并因此运行),那么您已经为不存在的对象分配了一个单击事件。呈现textarea HTML后,您需要分配click事件。这是获取
textarea
值的正确语法。#resultDiv
的标记和其余代码所隐含的.button
在哪里?我想初始化click listener时,#resultDiv
不在DOM
中。确保在创建textarea后执行此操作。@jmar777当然可以。它们都在我通过Ajax请求创建的同一个表中。问题一定出在其他地方,或者你没有告诉我们所有的事情。@Tartar:如果这有效,那么在你试图绑定事件处理程序时,\resultDiv
就不存在了。也许再看看一些基础知识:@FelixKling我确实检查了#resultDiv是否存在,我看到它存在。我不知道是什么导致了这个问题,但上面的解决方案是有效的。@Tartar:即使元素是在HTML中定义的,在您试图绑定处理程序时,它也可能不存在。如果将事件处理程序绑定放在$(document).ready(…)
(如教程所建议的)中,或者放在HTML源代码中的元素之后,那么代码可能工作正常。“证明”:@FelixKling是的,它是在HTML中定义的,但我不明白为什么在我尝试的那一刻它不存在?@Tartar:有关更多信息,请参阅。