Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript或Jquery获取textarea文本_Javascript_Jquery_Html_Textarea - Fatal编程技术网

使用javascript或Jquery获取textarea文本

使用javascript或Jquery获取textarea文本,javascript,jquery,html,textarea,Javascript,Jquery,Html,Textarea,我有一个iframe,其中包含一个textarea,如下所示: <html> <body> <form id="form1"> <div> <textarea id="area1" rows="15"></textarea> </div> </form> </body> </html> 但返回一个空字符串。但是,如果我在标记中放入一个值,则会成功返回该值: <

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

<html>
<body>

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

</body>
</html>
但返回一个空字符串。但是,如果我在标记中放入一个值,则会成功返回该值:

<textarea id="area1" rows="15">something</textarea>
什么 如何从包含iframe的页面获取textarea的值?

Try.html()而不是.val():


正如@Darin Dimitrov所说,如果它不是同一个域上的iframe,那么它是不可能的,如果是,请检查
$(“#frame1”).contents()
返回它应该返回的所有内容,然后检查是否找到了文本框:

$(“#frame1”).contents().find(“#area1”)。长度应为1

编辑

如果当您的文本区域为“空”时,返回一个空字符串,并且当它输入了一些文本时,返回该文本,那么它工作正常!!当文本区域为时,返回一个字符串

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

在iframe之外,您将访问如下文本区域:

window.textAreaInIframe
在文档中的iframe(我假设它有jQuery)中,准备好了以下代码:

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

要从带有id的textarea获取值,您只需执行以下操作

已编辑

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

可以使用
val()

阅读
的内容: 写入
':


不要使用
.html()
.innerHTML
! 不应使用jQuery的
.html()
和JavaScript的
.innerHTML
,因为它们不会拾取对textarea文本的更改


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

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

现在怎么办

函数go(){ var c1=document.getElementById('area1')。值; var d1=document.getElementById('as'); d1.html=c1; }
试试这个:

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

此iframe是否与父页面位于同一域中?如果没有,则无需继续浪费时间,因为出于安全原因,您无法访问未存储在域中的文档的DOM。是的,这两个页面位于同一文件夹和同一应用程序上。请尝试文本而不是val或html
var text=$('#frame1').contents()。查找('#area1').text(),否则。你需要调试和添加手表,并尝试各种各样的事情…不。不要使用
html()
从文本区域获取值。使用
val()
,或者更好地使用元素本身的
value
属性。@迭戈:不,
html()
是错误的
html()
返回textarea的初始值,而不是当前值,因此,一旦更改了值(通过脚本或用户),就错了。请看@Tim Down:我一直使用.val,但我认为它是一样的。谢谢你的数据!这两种方法都可以,当我把一些东西放在某个东西里的时候,我用的是文本区域和tinymce wysiwyg编辑器。这会导致与我的文本区域冲突,因为我无法获取文本。必须使用tinymce脚本中的javascript对象检索文本。谢谢大家!否,
html()
无法正确查找textarea的值。请参阅@rahul答案的注释。我可以访问textarea标记中键入的对象和值。但是我需要获取用户键入的值。否。当标记中没有任何内容时,即使我在文本区域中键入了一些内容,它也会返回一个空字符串。如果我在文本区域中键入某个内容,并且标记中有一个值,则返回该值,而不是键入到文本区域中的值。@antoni:我已再次编辑了我的答案。我想这个就行了。谢谢!!我必须记住,我是在使用textarea和tinymce wysiwyg编辑器。这会导致与我的文本区域冲突,因为我无法获取文本。必须使用tinymce脚本中的javascript对象检索文本。现在问题解决了。谢谢大家!
$("#area1").val();
var value = $('#area1').val();
$('#VAL_DISPLAY').html(value);
var text1 = document.getElementById('myTextArea').value;     // plain JavaScript
var text2 = $("#myTextArea").val();                          // jQuery
document.getElementById('myTextArea').value = 'new value';   // plain JavaScript
$("#myTextArea").val('new value');                           // jQuery
<!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;
}
var info = document.getElementById("area1").value; // Javascript
var info = $("#area1").val(); // jQuery