使用javascript或Jquery获取textarea文本

ant*_*oni 42 html javascript jquery textarea

我有一个包含textarea的iframe,如下所示:

<html>
<body>

<form id="form1">
<div>
    <textarea id="area1" rows="15"></textarea>
</div>
</form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想在父页面中获取textarea文本.我试过这个:

var text = $('#frame1').contents().find('#area1').val();
Run Code Online (Sandbox Code Playgroud)

但是返回一个空字符串.但是,如果我在标记中放置一个值,则会成功返回此值:

<textarea id="area1" rows="15">something</textarea>
Run Code Online (Sandbox Code Playgroud)

如何从包含iframe的页面获取textarea的值?

acd*_*ior 66

阅读<textarea>内容:

var text1 = document.getElementById('myTextArea').value;     // plain JavaScript
var text2 = $("#myTextArea").val();                          // jQuery
Run Code Online (Sandbox Code Playgroud)

<textarea>'':

document.getElementById('myTextArea').value = 'new value';   // plain JavaScript
$("#myTextArea").val('new value');                           // jQuery
Run Code Online (Sandbox Code Playgroud)

请在此处查看DEMO JSFiddle.


千万不能使用.html().innerHTML!

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

当用户在textarea .html()上键入时,不会返回键入的值,而是返回原始值 - 请查看上面的演示文件以获取示例.


rah*_*hul 18

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

编辑

$("#area1").val();
Run Code Online (Sandbox Code Playgroud)

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

  • 不.不要使用`html()`从textarea获取值.使用`val()`,甚至更好的元素本身的`value`属性. (6认同)
  • @Diego:不,`html()`错了.`html()`返回textarea的初始值,而不是当前值,所以一旦值改变(通过脚本或用户),就错了.见http://jsfiddle.net/SdGGy/1/ (6认同)

Sha*_*313 7

你可以用val().

var value = $('#area1').val();
$('#VAL_DISPLAY').html(value);
Run Code Online (Sandbox Code Playgroud)


小智 6

使用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;
}
Run Code Online (Sandbox Code Playgroud)

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


Tim*_*. Z 1

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

var text = $('#frame1').contents().find('#area1').html();
Run Code Online (Sandbox Code Playgroud)

  • 不,“html()”无法正确查找文本区域的值。请参阅@rahul 的回答的评论。 (6认同)