使用javascript或Jquery获取textarea文本

时间:2011-04-29 11:29:10

标签: javascript jquery html textarea

我有一个包含textarea的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的值?

8 个答案:

答案 0 :(得分:63)

阅读<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

See DEMO JSFiddle here.


使用.html().innerHTML

不应该使用jQuery的.html()和JavaScript的.innerHTML,因为他们不会对textarea的文本进行更改

当用户在textarea上输入内容时,.html()将不会返回键入的值,而是返回原始值 - 请查看上面的演示小提示示例。

答案 1 :(得分:18)

要从具有id的textarea中获取值,您只需要

被修改

$("#area1").val();

如果您在文档中有多个具有相同ID的元素,则HTML无效。

答案 2 :(得分:7)

您可以使用val()

var value = $('#area1').val();
$('#VAL_DISPLAY').html(value);

答案 3 :(得分:5)

使用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/

答案 4 :(得分:1)

尝试.html()而不是.val():

var text = $('#frame1').contents().find('#area1').html();

答案 5 :(得分:1)

正如@Darin Dimitrov所说,如果它不是同一个域上的iframe它是不可能的,如果是,检查$("#frame1").contents()是否返回它应该是什么,然后检查文本框是否找到:< / p>

$("#frame1").contents().find("#area1").length应为1。

修改

如果当你的textarea为“空”时,会返回一个空字符串,当它输入一些文本时会返回该文本,那么它是完美的!当textarea 为空时,会返回字符串!

编辑2 好。这里有一种方式,它不是很漂亮,但它有效:

在iframe之外,您将访问textarea,如下所示:

window.textAreaInIframe

在文件准备好的iframe(我假设有jQuery)里面放了这段代码:

$("#area1").change(function() {
    window.parent.textAreaInIframe = $(this).val();
}).trigger("change");

答案 6 :(得分:1)

%100解决方案:$('textarea [name =“ areaname”]')。val()

答案 7 :(得分:1)

试试这个:

var info = document.getElementById("area1").value; // Javascript
var info = $("#area1").val(); // jQuery