繁体   English   中英

使用 javascript 或 Jquery 获取 textarea 文本

[英]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

在此处查看演示 JSFiddle。


不要使用.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;
}

http://jsfiddle.net/PUpeJ/3/

你可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM