[英]Get textarea text with javascript or Jquery
我有一个包含文本区域的 iframe,如下所示:
<html>
<body>
<form id="form1">
<div>
<textarea id="area1" rows="15"></textarea>
</div>
</form>
</body>
</html>
我想在父页面中获取 textarea 文本。 我试过这个:
var text = $('#frame1').contents().find('#area1').val();
但是会返回一个空字符串。 但是,如果我在标签中放置一个值,则该值将成功返回:
<textarea id="area1" rows="15">something</textarea>
如何从包含 iframe 的页面中获取 textarea 的值?
<textarea>
的内容:var text1 = document.getElementById('myTextArea').value; // plain JavaScript
var text2 = $("#myTextArea").val(); // jQuery
<textarea>
':document.getElementById('myTextArea').value = 'new value'; // plain JavaScript
$("#myTextArea").val('new value'); // jQuery
.html()
或.innerHTML
! 不应使用 jQuery 的.html()
和 JavaScript 的.innerHTML
,因为它们不会获取对 textarea 文本的更改。
当用户在 textarea 上键入时, .html()
不会返回键入的值,而是返回原始值——查看上面的演示小提琴示例。
要从带有 id 的 textarea 中获取值,您只需要做
已编辑
$("#area1").val();
如果文档中有多个具有相同 id 的元素,则 HTML 无效。
使用 JavaScript 获取 textarea 文本:
<!DOCTYPE html>
<body>
<form id="form1">
<div>
<textarea id="area1" rows="5">Yes</textarea>
<input type="button" value="get txt" onclick="go()" />
<br />
<p id="as">Now what</p>
</div>
</form>
</body>
function go() {
var c1 = document.getElementById('area1').value;
var d1 = document.getElementById('as');
d1.innerHTML = c1;
}
你可以使用val()
。
var value = $('#area1').val();
$('#VAL_DISPLAY').html(value);
%100 解决方案:$('textarea[name="areaname"]').val()
尝试.html() 而不是.val():
var text = $('#frame1').contents().find('#area1').html();
正如@Darin Dimitrov 所说,如果它不是同一域上的 iframe 是不可能的,如果是,请检查$("#frame1").contents()
是否返回它应该返回的所有内容,然后检查文本框是否成立:
$("#frame1").contents().find("#area1").length
应该是 1。
编辑
如果当您的 textarea 为“空”时返回一个空字符串,并且当它输入了一些文本时返回该文本,那么它工作完美! 当 textarea 为空时,返回一个空字符串!
编辑 2好的。 这里有一种方法,它不是很漂亮,但它有效:
在 iframe 之外,您将像这样访问文本区域:
window.textAreaInIframe
在 iframe(我假设它有 jQuery)中准备好文档中的代码:
$("#area1").change(function() {
window.parent.textAreaInIframe = $(this).val();
}).trigger("change");
尝试这个:
var info = document.getElementById("area1").value; // Javascript
var info = $("#area1").val(); // jQuery
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.