Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法检索动态创建的textarea jquery的文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 无法检索动态创建的textarea jquery的文本

Javascript 无法检索动态创建的textarea jquery的文本,javascript,jquery,html,Javascript,Jquery,Html,即使在文本区域中写入,singleData也是空的。。。我怎样才能得到textarea的文本/ 您需要读取某些事件的值,例如:单击按钮时 还要确保使用jqueryon方法添加点击事件绑定代码。on方法适用于动态添加到DOM元素的当前和未来 textToolkit= '<textarea class="textInput" style="width:400px; height:200px;"></textarea>'; //adding the textToolkit i

即使在文本区域中写入,singleData也是空的。。。我怎样才能得到textarea的文本/

您需要读取某些事件的值,例如:单击按钮时

还要确保使用jqueryon方法添加点击事件绑定代码。on方法适用于动态添加到DOM元素的当前和未来

textToolkit= '<textarea class="textInput" style="width:400px; height:200px;"></textarea>';

//adding the textToolkit in controls
$('#controls').html(textToolkit+theUpdateButton);

//LATER IN CODE AFTER CLICK OF A BUTTON
singleData=$('.textInput').val();

这是一个工作示例

请确保页面上的所有元素都已加载

$(function(){

 var textToolkit= '<textarea class="textInput" style="width:400px; height:200px;"></textarea>';

var theUpdateButton="<input type='button' id='btnGet' value='get' />";
//adding the textToolkit in controls
$('#controls').html(textToolkit+theUpdateButton);

$(document).on("click","#btnGet",function(e){    
    e.preventDefault();
    var singleData=$('.textInput').val();
    //This is not the best jQuery selector. 
    //You may change according to your specific UI structure.
    alert(singleData);
});

});

问题在于你的点击功能。正常的

$(function(){
 singleData=$('.textInput').text();
});
将在加载DOM时呈现。但是在这段时间内,特定的类someclass将不会作为其动态添加的类出现。因此,您需要将其绑定或使用live click功能,如下所示:

$(".someclass").click(function(){

}); 
事件处理程序仅绑定到当前选定的元素;在代码调用.on时,它们必须存在于页面上。要确保元素存在并且可以选择,请在页面上HTML标记中的元素的文档就绪处理程序中执行事件绑定。如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序。或者,使用委派事件来附加事件处理程序,如下所述

委派事件的优点是,它们可以处理来自子元素的事件,这些子元素将在以后添加到文档中。通过选择在附加委派事件处理程序时保证存在的元素,可以使用委派事件来避免频繁附加和删除事件处理程序。例如,该元素可以是模型-视图-控制器设计中视图的容器元素,如果事件处理程序希望监视文档中的所有冒泡事件,则可以是文档。文档元素在加载任何其他HTML之前都在文档的头部可用,因此可以安全地在那里附加事件,而无需等待文档准备就绪


参考:

由.val返回的值不是活动的,因此在更改textarea时需要更新singleData的值。也许您的点击处理程序有问题?问题是我使用了tinymce编辑器,textarea不再是textarea。我的错。不过,我会投票支持那些好的答案。
$(document).on("click", ".someclass", function(){
    singleData = $('.textInput').val();
});