脚本中的变量取决于文本字段的用户输入

时间:2013-11-10 01:33:05

标签: javascript html forms text d3.js

我正在尝试使用用户在提交时输入到文本区域的任何内容来更新下面的var zz。我们的想法是使用用户在表单中提交的单词创建基本词云。

<!DOCTYPE html>
<meta charset="utf-8">
<script src="../lib/d3/d3.js"></script>
<script src="../d3.layout.cloud.js"></script>
<body>
<script>
var fill = d3.scale.category20();
var zz= ["Hello", "world", "normally", "you", "want", "more", "words", "than", "this"];
d3.layout.cloud().size([300, 300])
    .words((zz).map(function(d) {
        return {text: d, size: 10 + Math.random() * 90};
    }))
    .rotate(function() { return ~~(Math.random() * 2) * 90; })
    .font("Impact")
    .fontSize(function(d) { return d.size; })
    .on("end", draw)
    .start();
........
</script>

<div style="text-align: center">
<div id="presets"></div>
<div id="custom-area">
  <p><label for="text">Enter some text.</label>
  <p><textarea id="text"></textarea>
  <button id="zz" type="submit">Go!</button>
</div>
</div>

1 个答案:

答案 0 :(得分:0)

当表单提交或单击按钮时,请使用字段的值和split的空格:

根据您的示例网页,您遇到了一些问题:

  • x未定义,我在控制台中收到错误
  • 根据您的javascript
  • ,我没有看到任何标识为demo的元素

Here's a fiddle that shows a simple demo

function myFunction(){    
  var zz = document.getElementById("text").value.split(" ");
  document.getElementById("demo").innerHTML = zz;
}