如何在外部文档中使用javascript将textarea的内容保存为变量?

时间:2012-09-08 03:57:09

标签: javascript html textarea

正如许多人所建议的那样,我尝试将变量保存为使用.value找到的ID的.innerHTMLdocument.getElementById。这是我的所有HTML:

<html>
<head>
<title>write</title>
<script type="text/javascript" src="g.js"></script>
<link rel="stylesheet" type="text/css" href="g.css" />
</head>

<body>
<div id="box">
    <textarea id="txt" placeholder="placeholder. type here.">text text</textarea>
</div>  
</body> 
</html>

这是我的javascript,目前用于触发包含文本区域中文本的提醒 - 现在就是,text text

function run(){
var txt = document.getElementById('txt');

alert(txt);}

run()

现在,加载页面会触发包含文字Null的提醒,并在.value之后添加getElementById('txt')会导致无法提醒。非常感谢提前。

3 个答案:

答案 0 :(得分:3)

问题是你的javascript在构造DOM之前正在执行。当您在文档的<head>中加载JavaScript文件时,会在创建<textarea>标记之前立即执行该文件。

尝试在</body>标记之前的textarea下移动脚本块。

以下是一个示例:fiddle

构建DOM之后,您可以像使用getElementById一样使用value,并可以使用run()属性访问textarea的内容。所有这些都是上面的小提琴。

或者,您可以使用在DOM准备就绪时提供事件的库来包装$(function () { // code you want to execute when the DOM is ready. run(); }); 方法调用。 jQuery的例子是:

{{1}}

答案 1 :(得分:2)

function run() {
  var txt =  document.getElementById("txt").value;

  alert(txt);
 }

 $(document).ready(function(){
            run();
 });

检查此jsfiddle link

你没有获得textarea值,因为你的javscript函数在DOM中的值之前被执行

或使用javascript

function run(){
var txt =  document.getElementById("txt").value;

alert(txt);
}


window.onload = run();

有关window.onload

的更多信息

答案 2 :(得分:1)

下面的javascript在firefox中运行。事实上,如果您点击此问题的answer按钮,则可以在此页面的firebug中进行试用...

var textArea = document.getElementById("wmd-input"); // #wmd-input is the text input where your answer goes...
alert( textArea.value );

当然,请确保先输入一些文字。

当你参与其中时,你应该尝试jQuery:

alert( $("#wmd-input").val() );

或者更好,

console.log($("#wmd-input").val());

希望有所帮助。