簡體   English   中英

如何從文本框中調用文本以在JavaScript中設置變量

[英]How to call on text from a textbox to set a variable in javascript

我有點困境。 我試圖在循環上運行變量,以便它可以更改循環。 這是我目前擁有的代碼。

<FORM NAME="myform" ACTION="" METHOD="GET">
<INPUT TYPE="text" NAME="inputbox" id="Variable"><P>
</FORM>

<script type="text/javascript">
document.getElementById("Variable").value = i;
var i=5;
for (i=0;i<=5;i++)
{
document.write(" " + i);
document.write("<br />");
}
</script>

我試圖從表單中調用文本框中的文本,以定義var i。 我還要指出,我不是HTML的高手,如果您發現我做錯了所有事情,請隨時告訴我它做不到。

我認為您的意思是這樣的:

var count = parseInt(document.getElementById("Variable").value, 10);
var i;
for (i = 0; i < count; ++i) {
    // ...do something...
}

那是做什么的:

  1. 通過其ID(您已經擁有該元素)查找元素: document.getElementById("Variable')
  2. 檢索其value屬性的值,該屬性是一個字符串。
  3. 通過parseInt使用十進制(而不是八進制或十六進制)將字符串轉換為數字。
  4. 從零(含)循環到該數字(不含)。

請注意,您不能在頁面的主解析(初始加載)之后使用document.write ,並且您可能不想在頁面的主解析完成之前使用表單字段中的值,因此您可能不會做document.write在這里。 您可以設置元素的innerHTML ,類似這樣。

關於我的“ ...主解析之后您不能使用document.write ...”:從技術上講,您可以 ,但是您將完全替換頁面,而不僅僅是添加頁面。

回復我的“......你可能不希望在主解析之前,從表單域使用的值...完成...”:你可以 ,不過,只要表單字段是上面的腳本在頁面標記中。 我沒有字面上的意思是,你可能不希望 ,想必你希望用戶先輸入一些值。


更新 :這是一個更完整的示例,其中包含一個實時副本,可用於:

var element, value, count, i;

element = document.getElementById("Variable");
if (!element) {
  display("Element 'Variable' not found.");
}
else {
  value = element.value;
  count = parseInt(value, 10);
  if (isNaN(count)) {
    display("'" + value + "' is not numeric");
  }
  else {
    for (i = 0; i < count; ++i) {
        display("Loop " + i);
    }
  }
}

function display(msg) {
  var p = document.createElement('p');
  p.innerHTML = msg;
  document.body.appendChild(p);
}

實時復制display功能顯然是您實際要執行的操作的一個占位符。

我不明白您的確切問題。 但是我想這是您的解決方案:

<FORM NAME="myform" ACTION="" METHOD="GET">
<INPUT TYPE="text" NAME="inputbox" id="Variable">
<input type="button" value="run" onclick="renderIt()" />
<P>
</FORM>

<script type="text/javascript">
function renderIt()
{
var max = parseInt(document.getElementById("Variable").value);
for (i=0;i<=max;i++)
{
document.write(" " + i);
document.write("<br />");
}
}
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM