我想要一个下拉菜单,您可以在其中选择数字而不是变量

时间:2016-06-29 11:51:09

标签: javascript html

" var aantal = 10"给了我10个traingles但我希望用户插入自己的三角形数量。

      var aantal = 10;   
      var triangle = [];

      for (var i = 0; i < aantal; i++){
          triangle[i] = new Triangle;
          triangle[i].xLeft = 20 + 30*i;
          triangle[i].yLeft = 20 + 20*i;

      }

2 个答案:

答案 0 :(得分:0)

通过Window.prompt方法快速简便地在浏览器中询问用户输入。

这会停止您的代码,直到用户按下&#34; OK&#34;或&#34;取消&#34;在弹出窗口中。当用户填写一个值并按下&#34; OK&#34;时,该值将返回string。这是一个例子:

&#13;
&#13;
var userInput = prompt("How many triangles do you want?", 10);
var count = parseInt(userInput, 10);

for (var i = 0; i < count; i += 1) {
  console.log("Triangle " + i);
}
&#13;
&#13;
&#13;

请注意,您需要将string明确转换为number。此外,您可能需要检查nullNaN:当用户按下&#34;取消&#34;或者填写无效数据,您需要进行备用。

一旦此方法有效,您可能想尝试创建一个<input type="number"> HTML元素并从那里获取数据。

答案 1 :(得分:0)

我认为Bas要求触发一个函数的html下拉列表,如下所示:

&#13;
&#13;
<!-- /JavaScript code-->
<script>
  function setTriangles(value) {
    var aantal = eval(value);//evaluate the input as it's coming as a string
    if (aantal == 0) { //do nothing if the user has picked the description "Select number of triangles" in the drop down
      return;
    }
    var triangle = [];

    for (var i = 0; i < aantal; i++) {
      triangle[i] = new Triangle;
      triangle[i].xLeft = 20 + 30 * i;
      triangle[i].yLeft = 20 + 20 * i;
    }

  }
</script>
<!-- /end of JavaScript code-->

<!-- /HTML code-->
<select id="input" onChange="setTriangles(this.value);">
  <option value="0">Select number of triangles</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="5">5</option>
  <option value="10">10</option>
  <option value="20">20</option>
  <option value="30">30</option>
</select>

<!-- /end of HTML code-->
&#13;
&#13;
&#13;