无法检索动态创建的文本区域 jquery 的文本

Cannot retrieve text of dynamically created textarea jquery

本文关键字:文本 jquery 区域 创建 检索 动态      更新时间:2023-11-12
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();

即使在文本区域中写入后,单个数据也是空的...如何获取该文本区域的文本?:/

问题出在您的点击功能上。正常

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

将在 DOM 加载时呈现。但在此期间,特定类someclass将不会作为其动态添加而存在。所以你需要绑定它或使用live点击功能,如下所示:

$(document).on("click", ".someclass", function(){
    singleData = $('.textInput').val();
});

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

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

参考 : http://api.jquery.com/on/#direct-and-delegated-events

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

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

$(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);
});
});

这是一个工作示例 http://jsbin.com/eNigijIY/2/

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

$(function(){
 singleData=$('.textInput').text();
});