Javascript 无法检索动态创建的textarea jquery的文本
即使在文本区域中写入,singleData也是空的。。。我怎样才能得到textarea的文本/ 您需要读取某些事件的值,例如:单击按钮时 还要确保使用jqueryon方法添加点击事件绑定代码。on方法适用于动态添加到DOM元素的当前和未来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
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();
});